此文章为记录学习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