cocos2dx 3.12 lua切换场景

前端之家收集整理的这篇文章主要介绍了cocos2dx 3.12 lua切换场景前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

创建工程略过。。。

1.将要切换场景的lua文件,里面含有2个方法,一个全局的一个局部的,全局的是在切换场景的时候用(为什么定义全局的,后面会有说明),场景只简单的展示了一张图片

  1. local s = cc.Director:getInstance():getWinSize()
  2.  
  3. local GameMainLayer = nil
  4.  
  5. GameMainLayer = function ()
  6. local ret = cc.Layer:create()
  7.  
  8. local pBg = cc.Sprite:create("fruit/MM_0002.png")
  9. -- self.Bg:setAnchorPoint(cc.p(0.5,0.5))
  10. pBg:setPosition(cc.p(s.width/2,s.height/2))
  11. ret:addChild(pBg,1)
  12.  
  13. return ret
  14. end
  15.  
  16.  
  17. function cc.exports.CreateGameScene()
  18. print("CreateGameScene...")
  19.  
  20. local scene = cc.Scene:create()
  21. local layer = GameMainLayer()
  22. scene:addChild(layer)
  23. return scene
  24. end


2.切换前的场景,定义一个背景图,一个按钮,通过按钮事件来实现切换场景

因为要用到GameScene.lua文件,所以这里要引用一下;

重点是在按钮回调的方法changeSceneCallBack() 里面的CreatGameScene这个方法,由于在CreatGameScene在GameScene.lua里是一个全局的,所以这里就能很方便的调用,这也就是为什么在GameScene.lua将它定义为全局的原因

  1. require "app/views/GameScene"
  2. local MainScene = class("MainScene",cc.load("mvc").ViewBase)
  3. local s = cc.Director:getInstance():getWinSize()
  4. print(s.width,s.height)
  5. function MainScene:onCreate()
  6. -- add background image
  7. -- display.newSprite("HelloWorld.png")
  8. -- :move(display.center)
  9. -- :addTo(self)
  10.  
  11. -- -- add HelloWorld label
  12. -- cc.Label:createWithSystemFont("Hello World","Arial",40)
  13. -- :move(display.cx,display.cy + 200)
  14. -- :addTo(self)
  15.  
  16. self.Bg = cc.Sprite:create("fruit/logo.png")
  17. self.Bg:setPosition(cc.p(s.width/2,s.height/2))
  18. self:addChild(self.Bg,1)
  19.  
  20. local function changeSceneCallBack()
  21. print("changeSceneCallBack...")
  22. local _gameScene = CreateGameScene()
  23. if _gameScene then
  24. print("1111111")
  25. cc.Director:getInstance():replaceScene(_gameScene)
  26. else
  27. print("_gameScene nil...")
  28. end
  29.  
  30. end
  31.  
  32. local changeItem = cc.MenuItemImage:create("CloseNormal.png","CloseSelected.png")
  33. changeItem:setScale(3.0)
  34. changeItem:registerScriptTapHandler(changeSceneCallBack)
  35. changeItem:setPosition(cc.p(s.width/2,200))
  36.  
  37. local changeMenu = cc.Menu:create(changeItem)
  38. changeMenu:setPosition(cc.p(0,0))
  39. self:addChild(changeMenu,1)
  40. end

切换前场景(项目采用的是横屏)

切换后场景

猜你在找的Cocos2d-x相关文章