在main中
--create scene local scene = require("GameScene") local gameScene = scene.create() gameScene:playBgMusic() if cc.Director:getInstance():getRunningScene() then cc.Director:getInstance():replaceScene(gameScene) else cc.Director:getInstance():runWithScene(gameScene) end
require加载了GameScene,runWithScene用与第一次创建一个场景,它会将场景加入Director的主线程中,已经运行的场景是不能调用的。并且runWithScene会pushScene。replaceScene用用于场景间的替换,与pushScene不同的是被替换的场景不会保留到栈中。
1.GameScene
来看看GameScene中的代码
local GameScene = class("GameScene",function() return cc.Scene:create()end)function GameScene.create() local scene = GameScene.new() scene:addChild(scene:createLayer()) return sceneend
function GameScene:ctor() self.visibleSize = cc.Director:getInstance():getVisibleSize() self.origin = cc.Director:getInstance():getVisibleOrigin()endfunction GameScene:playBgMusic()end-- create layerfunction GameScene:createLayer() local rootNode = cc.csloader:createNode("MainScene.csb") local menuPopup,menuTools,effectID local function menuCallbackClose() cc.Director:getInstance():endTolua() end -- add handler for close item local menuToolsItem = rootNode:getChildByname("button_1") menuToolsItem:addtouchEventListener(menuCallbackClose) return rootNodeendreturn GameScene
local GameScene = class("GameScene",function()return cc.Scene:create()end) Lua是一门脚本语言,不是面向对象的,所以是通过table来实现类的模拟。class函数的的参数是类名及要继承的父类。 local rootNode = cc.csloader:createNode("MainScene.csb")从MainScene文件中创建节点,MainSence.csb是CocoStudio导出的资源描述文件。
总结以上是内存溢出为你收集整理的【Cocos2d-x Lua笔记三】CocosLuaGame开篇续全部内容,希望文章能够帮你解决【Cocos2d-x Lua笔记三】CocosLuaGame开篇续所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)