溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

cocos2d-x用Lua實現(xiàn)場景跳轉(zhuǎn)

發(fā)布時間:2020-06-04 22:58:15 來源:網(wǎng)絡(luò) 閱讀:1003 作者:酷酷小喬 欄目:游戲開發(fā)

首先,我們打開在cocos code IDE 里面新建的項目 在Src下我們新建3個場景分別為 GameScene MenuScene HelpScne。

我們先在MenuScene里面先把我們定義的菜單界面搞出來 

require "Cocos2d"

--創(chuàng)建菜單界面

local MenuScene=class("MenuScen",function()

   return cc.Scene:create()

end)

--添加一個Create函數(shù)

function MenuScene:create()

local scene=MenuScene.new()

scene:addChild(scene:init())

return scene

end

--添加一個構(gòu)造函數(shù)

function MenuScene:ctor() --記住這里必須寫ctor()

self.winsize=cc.Director:getInstance():getWinSize()

end

--添加一個初始化函數(shù)

function MenuScene:init()

 local layer=cc.layer:create()

 local label=cc.labelTTF:create("菜單界面","宋體",23)

label:setScale(2)

label:setPosition(self.winsize.width/2,self.winsize.height-100)

layer:addChild(label)

--添加選擇菜單

local label1=cc.labelTTF:create("開始游戲",“宋體”,23)

local itemStart=cc.MenuItemLabelL:create(label1)

local label2=cc.labelTTF:create("游戲幫助",“宋體”,23)

local itemHelp=cc.MenuItemLabelL:create(label2)

local menu=cc.Menu:create()

menu:addChild(itemStart)

menu:addChile(itemHelp)

itemHelp:setPositionY(itemHelp:getPositionY()-50)

layer:addChild(menu)

--添加觸摸

local function menuCallBack(obj)

print("按下"..obj)

if   tonumber (obj)==10 then

--場景跳轉(zhuǎn)

local scene=require("GameScene")

local gs=scene:create()

cc.Director:getInstance():replaceScene(gs)

elseif tonumber(obj)==12 then

local scene=require("HelpScene")

local gs=scene:create()

cc.Director:getInstance():replaceScene(gs)

   end

end

itemStart:setTag(10)
itemHelp:setTag(12)

itemStart:registerSceiptTapHandler(menuCallBack)

itemStart:registerSceiptTapHandler(menuCallBack)

return layer

end

return MenuScene

這樣我們就把菜單界面寫出來了

然后我們把GameScene界面寫一下

require "Cocos2d"

--定義游戲場景

local GameScene=class("GameScene",function()

  return cc.Scene:create()

end)

--create函數(shù)

 function GameScene:create()

  local scene=GameScene.new()

  scene:addChild(scene:init())

  return scene

  end

--構(gòu)造函數(shù)

function GameScene:ctor()

 self.winsize=cc.Director:getInstance():getWinSize()

end

--初始化函數(shù)

function GameScene:init()

 local layer=cc.Layer:create()

 local label=cc.LabelTTF:create("游戲界面","",30)

 label:setPosition(self.winsize.width/2,self.winsize.height-100)

 layer:addChild(label)

 local  function touchBegan(touch,event)

  local scene=require("MenuScene")

  local ms=scene:create()

  local tms=cc.TransitionFlipX:create(0.5,ms)

  cc.Director:getInstance():replaceScene(tms

 end

 --添加觸摸鍵聽

 local listener=cc.EventListenerTouchOneByOne:create()

 listener:registerScriptHandler(touchBegan,cc.Handler.EVENT_TOUCH_BEGAN)

 cc.Director:getInstance():getEventDispatcher():addEventListenerWithSceneGraphPriority(listener,layer)

 return layer

end

return GameScene

然后我們再把HelpScene寫一下

require "Cocos2d"

--定義游戲幫助場景

local HelpScene=class("HelpScene",function()

 return cc.Scene:create()

 

end)

--create函數(shù)

function HelpScene:create()

 local scene=HelpScene.new()

 scene:addChild(scene:init())

 return scene

end

--構(gòu)造函數(shù)

function HelpScene:ctor()

self.winsize=cc.Director:getInstance():getWinSize()

end

--初始化函數(shù)

function HelpScene:init()

local layer=cc.Layer:create()

local label=cc.LabelTTF:create("幫助界面","",30)

label:setPosition(self.winsize.width/2,self.winsize.height-100)

layer:addChild(label)

 

    local  function touchBegan(touch,event)

        local scene=require("MenuScene")

        local ms=scene:create()

        local tms=cc.TransitionFlipX:create(0.5,ms)

        cc.Director:getInstance():replaceScene(tms

    end

    --添加觸摸鍵聽

    local listener=cc.EventListenerTouchOneByOne:create()

    listener:registerScriptHandler(touchBegan,cc.Handler.EVENT_TOUCH_BEGAN)

    cc.Director:getInstance():getEventDispatcher():addEventListenerWithSceneGraphPriority(listener,layer)

 

return layer

end

return HelpScene

然后我們運行一下,這樣就實現(xiàn)了用Lua實現(xiàn)場景跳轉(zhuǎn)了

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI