cocos2d-lua切换cocostudio创建的两个csb场景

第一个场景加载的是loginscene.csb,第二个场景加载的是homescne.csb

第一个场景代码如下:

local MainScene = class("MainScene", cc.load("mvc").ViewBase)

function MainScene:onCreate()
    local uiRoot = cc.CSLoader:createNode("loginscene.csb")
    uiRoot:addTo(self)
    self:initEvent(uiRoot)
end

function MainScene:initEvent(uiRoot)
    local button = uiRoot:getChildByName("btn_login");
    if button then
        button:addTouchEventListener(function (event,type)
            if type == ccui.TouchEventType.began then
                print("点击按钮开始")
            end

            if type == ccui.TouchEventType.ended then
                local scene = require("app/views/HomeScene.lua")
                local gameScene=scene:create()
                --当前场景是否正在运行
                if cc.Director:getInstance():getRunningScene() then
                    --如果正在运行则替换场景
                    cc.Director:getInstance():replaceScene(gameScene)
                else
                    --如果不是就从这个场景开始运行
                    cc.Director:getInstance():runWithScene(gameScene)
                end
            end
        end)
    end
end

return MainScene

第二个场景代码如下:

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

--添加构造函数
function HomeScene:ctor()
    self.winsize=cc.Director:getInstance():getWinSize()
    local csbNode = cc.CSLoader:createNode("homescene.csb")
    csbNode:setAnchorPoint(0.5, 0.5)
    csbNode:setPosition(self.winsize.width/2, self.winsize.height/2)
    self:addChild(csbNode)
end

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

--初始化函数
function HomeScene:init()
    local layer=cc.Layer:create()
    --可以在初始化的时候添加控件,创建Label文本
    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)
    return layer
end
return HomeScene

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