碰撞:"death" 动画

Collision: "death" animation

我有一个尝试为敌人播放死亡动画的 Corona SDK 项目:

elseif name1 == "enemy" or name2 == "enemy" then
    if name1 == "enemy" then
        if player.y < event.object1.y-(event.object1.height*0.5) then 
            display.remove(event.object1); event.object1 = nil
            changeText(10)
        else
            print( "trigger animation" )
            event.object1:setSequence("explode") --Not working
            event.object1:play()
            gameOver()      
        end
    else

所以在else中,它应该会触发动画变化,但什么也没有发生。调试 print 确实发生了。

精灵 sheet 看起来像:

local enemySheet = graphics.newImageSheet("images/enemies.png", sheetInfoEnemy:getSheet() )
local enemySprite = 
{ name="stand", start=1, count=31, time = 1000, loopCount = 0 },
{ name="explode", start=32, count=25, time=800, loopCount=1 }   

正常 stand 动画播放得很好。

我错过了什么?正在发生碰撞,正在调用 gameOver,但未播放 explode 动画。

此代码仅将第一个 table 分配给 enemySprite:

local enemySprite = 
   { name="stand", start=1, count=31, time = 1000, loopCount = 0 },
   { name="explode", start=32, count=25, time=800, loopCount=1 }   

Lua 将评估两个 tables,但第二个在分配时被静默丢弃。要解决此问题,请将两个 table 存储在另一个 table:

local enemySprite = {
   { name="stand", start=1, count=31, time = 1000, loopCount = 0 },
   { name="explode", start=32, count=25, time=800, loopCount=1 } 
}

您可能需要调整使用 enemySprite 的代码(未显示)以使用新的 table。