function World:draw()
--draw the tiles based on 2d int array
--draw the player
--draw the monsters
--show what you need to based on camera
self.map[0][0]=display.newImage("dirt_tile.png",i,j)
end
当我使用事件处理程序时,我无法访问我的任何world对象的属性:
Runtime:addEventListener("enterFrame",World.draw)
我可以使用不同类型的eventListener,还是有不同的方法来实例化eventListener,以便自引用上下文保持不变?
答案 0 :(得分:2)
你走了:
World = { count=0 }
function World:enterFrame()
self.count = self.count + 1
print("count = " .. self.count)
end
Runtime:addEventListener("enterFrame", World)
有关详细信息,请参阅this API reference page。
答案 1 :(得分:0)
在您为表格local self = {}
命名时,它可能会与隐式self
参数发生冲突。
function World:draw()
只是World.draw = function(self)
的Lua语法糖。通过使用self
,您正在使用运行时事件处理程序传递给函数的任何第一个参数(从API判断,它传递event
,您将获得self
)。
尝试命名要以不同方式访问的表格(例如local this
),看看它是否有效。