1
我一直在试图弄清楚如何在Lua中的另一个类函数内部调用类函数,但我认为的方式不会。如何在Lua中使用middleclass在类中调用类函数
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如果这个框架有任何相关性的话。
感谢您花时间回答。
简单地写'self:get(x,y)'而不是'self.Level:get(x,y)' –
它现在工作我觉得很蠢,谢谢。 – MeArio