您好,登錄后才能下訂單哦!
首先,我們打開在cocos code IDE 里面新建的項目 在Src下我們新建3個場景分別為 GameScene MenuScene HelpScne。
我們先在MenuScene里面先把我們定義的菜單界面搞出來
require "Cocos2d"
--創建菜單界面
local MenuScene=class("MenuScen",function()
return cc.Scene:create()
end)
--添加一個Create函數
function MenuScene:create()
local scene=MenuScene.new()
scene:addChild(scene:init())
return scene
end
--添加一個構造函數
function MenuScene:ctor() --記住這里必須寫ctor()
self.winsize=cc.Director:getInstance():getWinSize()
end
--添加一個初始化函數
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
--場景跳轉
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函數
function GameScene:create()
local scene=GameScene.new()
scene:addChild(scene:init())
return scene
end
--構造函數
function GameScene:ctor()
self.winsize=cc.Director:getInstance():getWinSize()
end
--初始化函數
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函數
function HelpScene:create()
local scene=HelpScene.new()
scene:addChild(scene:init())
return scene
end
--構造函數
function HelpScene:ctor()
self.winsize=cc.Director:getInstance():getWinSize()
end
--初始化函數
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
然后我們運行一下,這樣就實現了用Lua實現場景跳轉了
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。