一个最简单的cocos2dx-lua 演示说明

此文章为记录学习cocos2dx-lua相关内容。

由于一开始使用的是C++版,现在改为使用lua版,有点不太熟悉,现在记录一些基本的内容,以供学习。

直接贴上代码,相关说明在代码中说明。

--main.lua文件内容

--添加搜索路径。
cc.FileUtils:getInstance():setPopupNotify(false)
cc.FileUtils:getInstance():addSearchPath("src/")
cc.FileUtils:getInstance():addSearchPath("res/")

require "cocos.init"

--封装string.format()
cclog=function(...)              
  print(string.format(...))  
end

local function main()
    --设置lua垃圾回收器的内容
    collectgarbage("collect")
    collectgarbage("setpause",100)
    collectgarbage("setstepmul",5000)

    local director=cc.Director:getInstance()
    --最后一个参数是分辨率方案。
 director:getOpenGLView():setDesignResolutionSize(1280,720,0)  
    director:setDisplayStats(true)
    director:setAnimationInterval(1.0/60)

    --简单的场景。具体内容看TestScene.lua内容
    local scene=require("TestScene")   
    local gameScene=scene.create()

    --判断是否有正在运行的创建
    if cc.Director:getInstance():getRunningScene() then
       cc.Director:getInstance():replaceScene(gameScene)
    else
       cc.Director:getInstance():runWithScene(gameScene)
    end


end

--xpcall是lua的错误处理方法。
--执行第一个参数。
local status, msg = xpcall(main, __G__TRACKBACK__)
if not status then
    error(msg)
end
--class返回的是什么。返回的值需要和类名一致吗?
--class返回的就是类,也就是table。返回值也就是类,不需要和类名一致。
size=cc.Director:getInstance():getVisibleSize()


local testScene=class("Test",
        function() 
            return cc.Scene:create() 
        end
        )

--初始化
function testScene:ctor()

end

下面是另一个文件,TestScene.lua

--TestScene.lua文件内容

size=cc.Director:getInstance():getVisibleSize()


local testScene=class("Test",
        function() 
            return cc.Scene:create() 
        end
        )

--初始化
function testScene:ctor()
--这里没有什么需要初始化的。
end

function testScene:create()
   local scene=testScene.new()           --创建场景。
   local layer=testScene:createLayer()   --创建层。
   scene:addChild(layer)                 --将层添加到场景中
   return scene                          --返回场景
end

function testScene:createLayer()
   local layer=cc.Layer:create()                         --创建场景
   local sprite=cc.Sprite:create("HelloWorld.png")       --创建精灵
   sprite:setPosition(cc.p(size.width/2,size.height/2))  --设置位置
   layer:addChild(sprite)                                --将精灵添加到层中
   return layer                                          --返回层。
end

--注意一定要返回类testScene
return testScene

你可能感兴趣的:(cocos2dx,lua,基础内容)