Cocos2d-X 3.2 lua语言飞机大战开发实例(三)
7.添加声音,更新分数,添加爆炸效果,道具的掉落、道具的碰撞检测等完善游戏功能
爆炸的效果添加
首先需要在GameData的全局数据中定义所有道具的表
g_allTools={} --所有道具的表
接下来定义一个爆炸类
--
require "Cocos2d"
local Boom=class("Boom",function ()
return cc.Node:create()
end)
--
function Boom:create(x,y)
local bm=Boom.new()
bm:addChild(bm:init(x,y))
return bm
end
--
function Boom:ctor()
end
--init()
function Boom:init(x,y)
local layer=cc.Layer:create()
local boom=cc.ParticleSystemQuad:create("boom.plist")
layer:addChild(boom)
boom:setPosition(x,y)
--一秒钟之后消失
local act1=cc.DelayTime:create(1)
local function killme()
self:removeFromParent()
end
local act2=cc.CallFunc:create(killme)
--执行动作序列
layer:runAction(cc.Sequence:create({ act1,act2}))
return layer
end
return Boom
--定义好了爆炸的类,我们该在GameScene中添加爆炸的效果了
--爆炸效果
local boom=require("nodes.Boom")
local bm=boom:create(nowe.ex,nowe.ey)
layer:addChild(bm)
8.道具的掉落,
--我们确定哪架敌机可以产生道具,所以我们需要产生随机数,确定哪个敌机可以产生道具
--在敌机类文件中
--确定这架飞机含有没有道具
local num=math.random(10) --产生的是1到10 的随机数,没有0
if num<=4 then
self.haveTools=num --这样数字是几,道具的类型就是几
else
self.haveTools=0
end
--
--定义道具的类文件
require "Cocos2d"
local Tools=class("Tools",function ()
return cc.Node:create()
end)
function Tools:create(t,