
创建工程略过。。。
1.将要切换场景的lua文件,里面含有2个方法,一个全局的一个局部的,全局的是在切换场景的时候用(为什么定义全局的,后面会有说明),场景只简单的展示了一张图片
local s = cc.Director:getInstance():getWinSize()local GameMainLayer = nilGameMainLayer = function () local ret = cc.Layer:create() local pBg = cc.Sprite:create("fruit/MM_0002.png") -- self.Bg:setAnchorPoint(cc.p(0.5,0.5)) pBg:setposition(cc.p(s.wIDth/2,s.height/2)) ret:addChild(pBg,1) return retendfunction cc.exports.CreateGameScene() print("CreateGameScene...") local scene = cc.Scene:create() local layer = GameMainLayer() scene:addChild(layer) return sceneend
因为要用到GameScene.lua文件,所以这里要引用一下;
重点是在按钮回调的方法changeSceneCallBack() 里面的CreatGameScene这个方法,由于在CreatGameScene在GameScene.lua里是一个全局的,所以这里就能很方便的调用,这也就是为什么在GameScene.lua将它定义为全局的原因
require "app/vIEws/GameScene"local MainScene = class("MainScene",cc.load("mvc").VIEwBase)local s = cc.Director:getInstance():getWinSize()print(s.wIDth,s.height)function MainScene:onCreate() -- add background image -- display.newSprite("HelloWorld.png") -- :move(display.center) -- :addTo(self) -- -- add HelloWorld label -- cc.Label:createWithSystemFont("Hello World","Arial",40) -- :move(display.cx,display.cy + 200) -- :addTo(self) self.Bg = cc.Sprite:create("fruit/logo.png") self.Bg:setposition(cc.p(s.wIDth/2,s.height/2)) self:addChild(self.Bg,1) local function changeSceneCallBack() print("changeSceneCallBack...") local _gameScene = CreateGameScene() if _gameScene then print("1111111") cc.Director:getInstance():replaceScene(_gameScene) else print("_gameScene nil...") end end local changeItem = cc.MenuItemImage:create("Closenormal.png","CloseSelected.png") changeItem:setScale(3.0) changeItem:registerScriptTapHandler(changeSceneCallBack) changeItem:setposition(cc.p(s.wIDth/2,200)) local changeMenu = cc.Menu:create(changeItem) changeMenu:setposition(cc.p(0,0)) self:addChild(changeMenu,1)end 切换前场景(项目采用的是横屏)
切换后场景
总结
以上是内存溢出为你收集整理的cocos2dx 3.12 lua切换场景全部内容,希望文章能够帮你解决cocos2dx 3.12 lua切换场景所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)