2013-03-26 32 views
1

使用for循環,我試圖用一個for循環來破壞我的對象數組內像這樣:一個陣列內刪除項目在Lua

for item in self.objects do 
    item:removeSelf() 
end 

的self.objects是我的陣列,它包含圖片我用於動畫。如果我觸摸其中一個動畫對象,它應該被銷燬(消失)。我的問題是,我收到此錯誤信息:

嘗試調用表值

我不知道爲什麼我收到此錯誤,以及如何解決它,以便有人能請解釋我在觸摸事件期間如何從陣列中刪除對象以及爲什麼我會收到此消息?提前致謝。 :D

回答

5

形式爲for x in y do...的通用循環期望y爲迭代器函數。你傳遞給它一個表,因此是錯誤信息。

如果你只是想在表中的每個條目迭代,使用pairs

for key, item in pairs(self.objects) do 
    item:removeSelf() 
end 

見PIL 4.3.5和所有的Chapter 7上通用的更多信息和迭代。

+1

既然這是一個數組,你應該使用'ipairs'。 – 2013-03-26 03:27:29