我一直在试图弄清楚如何在Lua中的另一个类函数中调用类函数,但我认为可行的方式不会。
local class = require 'libs.middleclass'
local Level = class('Level')
function Level:initialize(width, height, tileSize)
self.width = width
self.height = height
self.tileSize = tileSize
self.data = {}
--Generate a 1D Array for the map data
for x = 1, self.width do
for y = 1, self.height do
table.insert(self.data, 0)
end
end
end
function Level:get(x, y)
return self.data[x + (y-1) * self.width]
end
function Level:set(x, y, type)
self.data[x + (y - 1) * self.width] = type
end
function Level:draw()
for x = 1, self.width do
for y = 1, self.height do
if self.Level:get(x, y) == 0 then
love.graphics.setColor(255, 255, 255)
love.graphics.rectangle("fill", x * tileSize, y * tileSize, tileSize, tileSize)
love.graphics.setColor(0, 0, 0)
love.graphics.rectangle("line", x * tileSize, y * tileSize, tileSize, tileSize)
elseif self.Level:get(x, y) == 1 then
love.graphics.setColor(255, 255, 255)
love.graphics.rectangle("fill", x * tileSize, y * tileSize, tileSize, tileSize)
end
end
end
end
return Level
不确定您是否需要所有代码,但这是我在level.lua对象类中的内容。我认为用self.method调用它会起作用,但它给了我:
objects/level.lua:29: attempt to index field 'Level' (a nil value)
这就是我可以说的全部内容,因为我刚开始在Lua中做OOP,如果这与任何方式有关,我也会使用Love2D框架。
感谢您抽出宝贵时间回答。
答案 0 :(得分:0)