Cocos2d-lua学习笔记之场景跳转

首先在mian.lua中,让第一个场景从MenuScene.lua开始

local function main()
    local scene=require("MenuScene.lua")
    local gameScene=scene:create()
    if cc.Director:getInstance():getRunningScene() then
        cc.Director:getInstance():replaceScene(gameScene)
    else
        cc.Director:getInstance():runWithScene(gameScene)
    end


end

然后我们在MenuScene.lua中创建该场景
①创建菜单界面

--创建菜单界面
local MenuScene=class("MenuScene",function()
    return cc.Scene:create()
end)

return MenuScene

②添加一个create函数

--添加一个create函数
function MenuScene:create()
    local scene=MenuScene.new()
    scene:addChild(scene:init())
    return scene
end

③添加构造

--添加构造
function MenuScene:ctor()
    self.winsize=cc.Director:getInstance():getWinSize()

end

④添加初始化函数

function MenuScene:init()
    local layer=cc.Layer:create()
    local label=cc.LabelTTF:create("PlaneGame","宋体",45)
    label:setString("PlaneGame")
    label:setScale(3)
    label:setPosition(self.winsize.width/2,self.winsize.height-100)
    layer:addChild(label)


    --添加菜单
    local label1=cc.LabelTTF:create("StartGame","宋体",40)  
    local itemStart=cc.MenuItemLabel:create(label1)
    label1:setScale(2)
    --itemStart:setPosition(self.winsize.width/2,self.winsize.height-110)
    local label2=cc.LabelTTF:create("Help","宋体",40)
    local itemHelp=cc.MenuItemLabel:create(label2)
    label2:setScale(2)
    itemHelp:setPositionY(itemHelp:getPositionY()-100)

    local menu=cc.Menu:create()
    menu:addChild(itemStart)
    menu:addChild(itemHelp)
    layer:addChild(menu)
--触摸监听
    local function menucallback(obj)
    print("按钮被按下"..obj)
        if tonumber(obj)==10 then
            local scene=require("GameScene")
            local gs=scene:create()
            cc.Director:getInstance():replaceScene(gs)
        else if tonumber(obj)==11 then
            local scene=require("HelpScene")
            local hs=scene:create()
            cc.Director:getInstance():replaceScene(hs)
            end
        end

    end
    itemStart:setTag(10)
    itemHelp:setTag(11)
    itemStart:registerScriptTapHandler(menucallback)
    itemHelp:registerScriptTapHandler(menucallback)

    return layer
end

以上就是创建场景和场景跳转的写法了。

你可能感兴趣的:(cocos2d-x)