简体   繁体   English

Lua创建类的错误

[英]Lua error to create a class

I'm trying to create a class for my game and I got this error (shown in love2d): attempt to index upvalue 'World' (a boolean value) 我正在尝试为我的游戏创建一个类,但出现此错误(如love2d所示): 尝试索引升值的“世界”(布尔值)

This is my World file I made: 这是我制作的世界文件:

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

And here I call the world: 在这里,我称世界:

local World = require("world")

function love.load()
    -- Build the world
    world = World:new(32, 9.81)
end

What is wrong? 怎么了? Anyway, what is the best way for make a class in Lua? 无论如何,在Lua上课的最好方法是什么?

In the world.lua file, put a return World at the end: world.lua文件中,将return World放在末尾:

.
.
.
function World:destroy()
    -- Destroy the world
    self.world:destroy()
end

-- Add line below
return World

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM