gpt4 book ai didi

Lua从表中删除一个项目(CoronaSDK)

转载 作者:行者123 更新时间:2023-12-04 04:49:33 26 4
gpt4 key购买 nike

尽管进行了很多搜索,但一直在努力解决这个问题并没有到达任何地方,所以如果有人可以提供帮助,那就太好了

我的问题是我有一个像这样添加的对象表

enemies[enemy_id] = enemy

现在,本地图末端发生碰撞时,我想将那个敌人从 table 上移走。我试过删除
enemies[enemy_id] = nil

但是当它到达最后一个敌人时,由于某种原因, table 已经空了。假设一张 table 上有 3 个敌人,我打印 table 的数量。第一个被删除它显示 2 左边,第二个被删除它显示 0 左边。没有意义

那么如何从表中删除项目?我也尝试过 table.remove 但我需要键入相同的键,因为它们是敌人的 id。如果需要,我可以发布一个示例

最佳答案

在 Lua 表中使用“稀疏键”时,这种模式通常会为我带来返回:

-- add item to registry
registry[object] = key
registry[key] = object

-- iterate over all items in registry
for k,v in pairs(registry) do
if type(k) == "number" then do_something(k,v) end
end

-- remove item with key K from registry:
registry[registry[K]] = nil
registry[K] = nil

-- remove item O from registry:
registry[registry[O]] = nil
registry[O] = nil

关于Lua从表中删除一个项目(CoronaSDK),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17622924/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com