Class 创建类时出错
我试图为我的游戏创建一个类,但出现了以下错误(如love2d所示):尝试将“世界”(一个布尔值)的值上标。 这是我制作的世界文件:Class 创建类时出错,class,lua,love2d,Class,Lua,Love2d,我试图为我的游戏创建一个类,但出现了以下错误(如love2d所示):尝试将“世界”(一个布尔值)的值上标。 这是我制作的世界文件: local World = {} World.__index = World function World:new(meter, gravity) setmetatable({}, World) -- Set physics parameters love.physics.setMeter(meter) self.world =
local World = {}
World.__index = World
function World:new(meter, gravity)
setmetatable({}, World)
-- Set physics parameters
love.physics.setMeter(meter)
self.world = love.physics.newWorld(0, gravity*meter, true)
-- Load background
self.background = love.graphics.newImage("imgs/background.png")
return self
end
function World:update(dt)
end
function World:draw()
love.graphics.draw(self.background)
end
function World:destroy()
-- Destroy the world
self.world:destroy()
end
在这里,我称世界为:
local World = require("world")
function love.load()
-- Build the world
world = World:new(32, 9.81)
end
怎么了?无论如何,在Lua中创建类的最佳方法是什么?在
世界中。Lua
文件的末尾放一个返回世界
:
.
.
.
function World:destroy()
-- Destroy the world
self.world:destroy()
end
-- Add line below
return World
哦,真是好极了!但是,如果我已经在新方法中返回了self,那么为什么我必须把这个返回放在这里呢?@Jazz因此需要返回世界表。但是现在我有了一个疑问:我在创建一个模块还是一个类?@Jazzguy,它们是一样的。其他语言称之为类、包等,lua有模块。