【发布时间】:2020-09-26 15:48:12
【问题描述】:
我正在制作一款游戏,玩家需要在其中生成一些子弹:
game
├──player = {}
└──bullets = {}
我在 godot 中听说你可以使用 parent 来寻址父节点,想知道我是否可以以某种方式模仿。
我目前有 2 个可能的解决方案:
local game = {
player = player.new(x, y, spawnBullet),
bullets = {}
}
spawnBullet 是一个函数。虽然这需要对所有功能都这样做,这可能很烦人。
我的第二个解决方案是将游戏项目传递给玩家
local game
game = {
player = player.new(x, y, game),
bullets = {},
在player.new(x, y, parent)
player.parent = parent
这些解决方案是全部可用还是有更好的解决方案?
不管怎样,我自己做了一个节点模块。
local node = {}
node.__index = node
local new = function(name, parent)
assert(name, "Please provide a name for the node")
local newNode = {
name = name,
parent = parent,
}
return setmetatable(newNode, node)
end
return setmetatable(
{
new = new,
__call = new,
},
node
)
【问题讨论】:
标签: lua love2d class-hierarchy