2011-09-08 45 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