【发布时间】:2019-07-17 18:05:45
【问题描述】:
我正在尝试制作一个基本实体组件系统,但我的 lua 脚本(使用 Love2D)出现此错误。 我不知道问题出在哪里:
错误:systems.lua:11: 'rectangle' 的参数 #2 错误(预期数字,得到 nil)
main.lua
local system = require "systems"
function love.load()
system.newPlayer()
end
function love.draw()
system.drawPlayer()
end
systems.lua
local S = {}
local entities = require "entities"
local components = require "components"
function S.newPlayer()
entities.player()
end
function S.drawPlayer()
love.graphics.rectangle("fill",components.getX(1),components.getY(1), 10, 10)
end
return S
entities.lua
local components = require "components"
local E = {}
function E.player()
components.setX(1,20)
components.setY(1,20)
end
return E
components.lua
local C = {}
local x = {}
function C.setX(key, value)
x.key = value
end
function C.getX(index)
return x.index
end
local y = {}
function C.setY(key, value)
y.key = value
end
function C.getY(index)
return y.index
end
return C
我在调用 components.setX(1,20) 时将错误追溯到entities.lua,因为在那之后,打印键的值是 nil,尽管函数将它设置为 20。
【问题讨论】: