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