【发布时间】:2020-09-13 20:08:09
【问题描述】:
我是 Lua 的新手,我正在尝试使用 LOVE2D 创建一个视频游戏,其中玩家装饰在传送带上移动的比萨饼。玩家成功制作披萨后,他们会收到新订单并自动开始制作下一个披萨。
我遇到的问题是跟踪玩家与之交互的披萨对象。我创建了一个表来存放比萨饼,其中第一个索引处的项目是当前的比萨饼——玩家可以添加配料的那个。为了节省内存,我想在它离开屏幕后删除第一个索引处的披萨 (table.remove(pizzas, 1))。但是,这会导致错误“尝试索引零值”,我猜这是因为我在第一个索引处对项目有多个引用(例如,为了跟踪位置,pizzas[1].x,或为了跟踪奶酪,我有披萨[1].cheeseCount)。我该如何避免这种情况?非常感谢!
【问题讨论】:
-
你如何过渡到下一个披萨?
-
@Nifim 我设置了 Pizzas[1] = Pizzas[2],然后通过 table.remove(pizzas, 1) 删除了第一项。
-
当您致电
table.remove时,它会为您重新排列您的阵列。无需设置pizzas[1] = pizzas[2]lua.org/pil/19.2.html