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