Love2D Lua 不知道为什么这不起作用
Love2D Lua no idea why this doesn't work
为无用的标题道歉,但我真的不知道该怎么称呼它。无论如何,我不知道为什么会这样:
local entity = require "entity"
entity:new(5,10,15,6)
local test = entity
print(test.x,test.y)
...但这不是...
local entity = require "entity"
local test = entity:new(5,10,15,6)
print(test.x,test.y)
Entity.lua 简单包含:
local Entity = {}
function Entity:new(x,y,w,h)
self.x = x
self.y = y
self.width = w
self.height = h
end
return Entity
案例一:
变量 实体 得到 table 这是 return 从 Entity.lua 编辑而来。
当您在 Entity.lua 中调用 Entity:new() 时,所有变量初始化都在 table(object) entity 上执行。因此,entity 有变量 x、y、宽度和高度。您将 table 分配给 test 并打印了它。
有效。
案例二:
local test = Entity:new()
。
这里变量 test 取方法 new() 的 return 值,在这种情况下为 nil,因为函数没有 return 任何值.
它打印错误,因为 table test 没有任何名为 x 和 y 的键。
如果你想用 x、y、w、h 创建一个新的 table,你可以这样做:
function Entity.new(x,y,w,h)
local newEntity = {}
newEntity.x = x
newEntity.y = y
newEntity.width = w
newEntity.height = h
return newEntity
end
或(但可读性较差):
function Entity.new(x,y,w,h)
return {x = x, y = y, width = w, height = h}
end
为无用的标题道歉,但我真的不知道该怎么称呼它。无论如何,我不知道为什么会这样:
local entity = require "entity"
entity:new(5,10,15,6)
local test = entity
print(test.x,test.y)
...但这不是...
local entity = require "entity"
local test = entity:new(5,10,15,6)
print(test.x,test.y)
Entity.lua 简单包含:
local Entity = {}
function Entity:new(x,y,w,h)
self.x = x
self.y = y
self.width = w
self.height = h
end
return Entity
案例一:
变量 实体 得到 table 这是 return 从 Entity.lua 编辑而来。
当您在 Entity.lua 中调用 Entity:new() 时,所有变量初始化都在 table(object) entity 上执行。因此,entity 有变量 x、y、宽度和高度。您将 table 分配给 test 并打印了它。
有效。
案例二:
local test = Entity:new()
。
这里变量 test 取方法 new() 的 return 值,在这种情况下为 nil,因为函数没有 return 任何值.
它打印错误,因为 table test 没有任何名为 x 和 y 的键。
如果你想用 x、y、w、h 创建一个新的 table,你可以这样做:
function Entity.new(x,y,w,h)
local newEntity = {}
newEntity.x = x
newEntity.y = y
newEntity.width = w
newEntity.height = h
return newEntity
end
或(但可读性较差):
function Entity.new(x,y,w,h)
return {x = x, y = y, width = w, height = h}
end