0
我有一拍举起手来游戏,如下图所示,如果敌人与我的性格碰撞的“冲”的声音在计时器上打出:科罗娜SDK催生对象
local function hitSound()
local hsound = math.random(#sfx.hit)
audio.play(sfx.hit[hsound])
end
- - - - - - - - - - - - - - - - - - - - - - - - - -字符碰撞---------------
local function guyCollision(self, event)
if event.other.type == "enemy1"then
if event.phase == "began" then
hitTimer = timer.performWithDelay(500,hitSound,0)
event.other:setSequence("punch")
event.other:play()
end
if event.phase == "ended" then
timer.pause(hitTimer)
end
当我的角色正在下降只是一个敌人的同时也能正常工作,但如果有一个以上的催生敌人(其中有通常是)当我杀死他们的冲击声r时与我的角色战斗emains。 另外,当我呼叫audio.fadeout()时,我的角色死亡拳击声音不会与其他声音/音乐淡出:s
有人建议我分配计时器使用它的特定敌人索引在表中,但我不确定如何做到这一点...这是最好的方式吗?我只是不知道如何获得enemys目前的指数..任何帮助非常感谢!
继承人我的敌人产卵代码:
local spawnTable2 = {}
local function spawnEnemy()
enemy1 = display.newSprite(group, sheetE, sequenceData2)
enemy1.x=math.random(100,1300)
enemy1.y=math.random(360,760)
enemy1.gravityScale = 0
enemy1:play()
enemy1.type="coin"
enemy1.objTable = spawnTable2
enemy1.index = #enemy1.objTable + 1
enemy1.myName = "enemy" .. enemy1.index
physics.addBody(enemy1, "kinematic",{ density = 1.0, friction = 0.3, bounce = 0.2 })
enemy1.isFixedRotation = true
enemy1.type = "enemy1"
enemy1.enterFrame = moveEnemy
Runtime:addEventListener("enterFrame",enemy1)
enemy1.objTable[enemy1.index] = enemy1
return enemy1
end
感谢抢劫,self.timer没有工作,因为碰撞是在主角上,而不是敌人。我通过使用event.other.timer和timer.cancel(event.other.timer)来实现它。我现在遇到的问题是当我的角色死亡和audio.fadeOut被称为冲孔不会淡出。我已经尝试设置enemy1.timer = nil和timer.cancel(enemy1)(发生错误),但它仍然播放,当我暂停游戏和audio.pause被称为冲孔没有暂停,ive got aroundthis bu setting主音量为零,但这是不可行的,当我的角色死亡..任何建议? – user3059109
顺便说一句,当我的角色死亡时,我停止enemiess产卵,所以新的碰撞不是问题 – user3059109