2015-09-13 68 views
0

我有嘗試播放死亡動畫,敵人電暈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確實發生。

精靈表的樣子:

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動畫未播放。

+0

Lua無法將多個值分配給單個變量。 enemySprite只會獲得第一個值(以stand作爲名稱的表格)。也許你打算分配一個值表? – ryanpattison

+0

@rpattiso你說得對。我錯過了一個'{}'。隨意做出答案! – Zeno

回答

0

該代碼被分配僅在第一表到enemySprite

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

的Lua將評估兩個表,但第二被丟棄上分配。爲了解決這個問題,同時存儲表中另一個表:

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

您可能需要調整使用enemySprite代碼(未顯示),以使用新表。