Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Class 创建类时出错_Class_Lua_Love2d - Fatal编程技术网

Class 创建类时出错

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 =

我试图为我的游戏创建一个类,但出现了以下错误(如love2d所示):尝试将“世界”(一个布尔值)的值上标。

这是我制作的世界文件:

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有模块。