2011-09-08 57 views
0

我一直在試圖寫出使用Corona SDK(使用Lua)的自定義勾號。關鍵似乎是這些「eventListeners」,但我也試圖讓他們與類一起工作。現在我有這個班「世界」成立。我試圖添加EventListener到我的「打勾」功能,但科羅娜告訴我我做不到。電暈「勾號」問題 - addEventListener

function World:tick() 
--player:tick() 
--camera:tick(player.x,player.y) 
--for i=0,monsters.length do 
--  monster[i]:tick() 
    if(rwalk) then 
     mainGroup.x = mainGroup.x-10 
    elseif(lwalk) then 
     mainGroup.x = mainGroup.x+10 
    end 
end 
Runtime:addEventListener("enterFrame",tick) 

錯誤:運行時錯誤:聲明失敗! 堆棧回溯: [C]:? [C]:在函數 '斷言' :在函數 'getOrCreateTable' :在函數 '的addEventListener' :在函數 '的addEventListener' C:\用戶\埃文\桌面\ LUA \測試遊戲\主.lua:337:主要區塊

回答

3

這適用於我。應爲你工作:

World = {} 

function World:tick() 
    print "Hello!" 
end 

display.setStatusBar(display.HiddenStatusBar) 
Runtime:addEventListener("enterFrame", World.tick) 

所有你缺少的是指定使用World.tick,而不是tick功能。

+0

哦。工作感謝!但現在我無法訪問我的任何世界對象的屬性。說我添加行(並初始化到我的世界:new()): self.test = true 在該功能的任何地方。它給了我一個「測試」爲零的錯誤。無論如何要做一個事件監聽器,同時保留對象及其所有屬性? – Evan

+0

如果您接受我的回答,並隨示例代碼一起打開一個新問題,我很樂意看看它。 :) –

+0

哦,好吧。我接受了你的答案,但我會開始一個新的問題。 – Evan