請原諒總共n00b個問題。我是Corona SDK的新手(一般來說編程,除了一些VB和閱讀Frank Zammetti的優秀書),我遇到了一個問題。在嘗試了幾件事情並廣泛搜索後,我無法理解這一點......Corona - 與個別收聽者一起孵化物體
背景:作爲一種學習練習,我試圖編寫一個遊戲,其中有六個'thingies'。每件東西都會根據隨機屬性給予「分數」,而得分最高的東西將是「正確」的選擇。用戶將點擊他們的選擇,然後他們會被告知他們是否正確選擇。
我正在研究我的'繪製水平'功能,它會產生東西。這個功能應該在屏幕上產生6個圖像,然後使這六個圖像中的每一個都可以通過點擊來識別。這是我寫的代碼:
for i=1,6,1 do
thingy[i] = display.newImageRect("graphics/thingy.png", 67, 122, true);
thingy[i].name = ("thingy"..i);
thingy[i].id = i;
thingy[i].x = (positionSpacing * i) - (positionSpacing/2);
thingy[i].y = display.contentCenterY;
table.insert(thingy[i], gc.gameDG);
print(thingy[i].name.." "..thingy[i].x.." index "..thingy[i].id); --for debug
thingy[i]:addEventListener("tap", gc.positionTapped);
end
這創造了在屏幕上愉快的事情。於是我定義一個函數來對事物的反應攻絲:
function gc:positionTapped(event)
utils:log(sceneName, "positionSelected()");
print(self.id);
end
的utils的:日誌功能是有調試,並且能夠正常運行。但是print self.id不起作用。我期待它給我thingy id(這應該是我在循環中定義的)。它返回'零'。
我試圖改變產卵循環是:
for i=1,6,1 do
thingy[i] = display.newImageRect("graphics/thingy.png", 67, 122, true);
thingy[i].name = ("thingy"..i);
thingy[i].id = i;
thingy[i].x = (positionSpacing * i) - (positionSpacing/2);
thingy[i].y = display.contentCenterY;
table.insert(thingy[i], gc.gameDG);
print(thingy[i].name.." "..thingy[i].x.." index "..thingy[i].id); --for debug
thingy[i]:addEventListener("tap", gc:positionTapped);
end
,循環崩潰了與「近有望函數參數)」
所以我改變了它再次爲:
for i=1,6,1 do
thingy[i] = display.newImageRect("graphics/thingy.png", 67, 122, true);
thingy[i].name = ("thingy"..i);
thingy[i].id = i;
thingy[i].x = (positionSpacing * i) - (positionSpacing/2);
thingy[i].y = display.contentCenterY;
table.insert(thingy[i], gc.gameDG);
print(thingy[i].name.." "..thingy[i].x.." index "..thingy[i].id); --for debug
thingy[i]:addEventListener("tap", gc:positionTapped());
end
它崩潰了「運行時錯誤斷言失敗!」在循環過程中,一樣:
thingy[i]:addEventListener("tap", gc.positionTapped(thingy[i].id));
也是如此:
thingy[i]:addEventListener("tap", gc.positionTapped(i));
我一直在閱讀和谷歌上搜索了三天仍然無法找到答案。如果你願意對n00b表示同情並幫助我,我會非常感激。 :-)