碰撞:"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。
我有一个尝试为敌人播放死亡动画的 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。