Lua飞机大战开发实例(一)
背景地图,飞机,子弹的封装,以及lua中定时器的使用
1. 首先实现场景的跳转
在MenuScene场景中
require "Cocos2d"
--创建一个菜单场景
local MenuScene=class("MenuScene",
function ()
return cc.Scene:create()
end
)
--添加一个creaet函数
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()
--定义一个layer作为容器
local layer=cc.Layer:create()
--添加一个精灵背景
local spbk=cc.Sprite:create("fonts/Resources/logo.jpg")
layer:addChild(spbk)
spbk:setPosition(cc.vertex2F(self.winsize.width/2,self.winsize.height/2))
--定义logo
local splogo=cc.Sprite:create("fonts/Resources/LOGO.png")
layer:addChild(splogo)
--执行动作,从底下移动到上方
splogo:setPositionX(self.winsize.width/2)
splogo:runAction(cc.MoveTo:create(0.5,cc.vertex2F(self.winsize.width/2,self.winsize.height/2+300)))
--添加一个按钮
--local label1=cc.LabelTTF:create("开始游戏","",23)
local label1=cc.MenuItemImage:create("fonts/Resources/kaishia.png","fonts/Resources/kaishib.png")
local start=cc.MenuItemLabel:create(label1)
local menu=cc.Menu:create()
menu:addChild(start)
start:setTag(10)
start:setColor(cc.c4f(255,255,1,1))
layer:addChild(menu)
--locallabel2=cc.LabelTTF:create("游戏帮助","",23)
local label2=cc.MenuItemImage:create("fonts/Resources/xuanyaoa.png","fonts/Resources/xuanyaob.png")
local help=cc.MenuItemLabel:create(label2)
local menu=cc.Menu:create()
menu:addChild(help)
help:setPositionY(help:getPositionY()-100)
help:setTag(11)
help:setColor(cc.c4f(255,255,1,1))
layer:addChild(menu)
--添加回调函数
local function menucallback(obj)
if tonumber(obj)==10 then
local scene=require("GameScene")
local gs=scene:create()
cc.Director:getInstance():replaceScene(gs)
elseif tonumber(obj)==11 then
local scene=require("HelpScene")
local hs=scene:create()
cc.Director:getInstance():replaceScene(hs)
end
end
help:registerScriptTapHandler(menucallback)
start:registerScriptTapHandler(menucallback)
return layer
end
return MenuScene
2. 在HelpScene的场景中:
--
require("Cocos2d")