Godot 库存数组,如何填充第一个元素
我正在 Godot 中制作数组清单。我有六个 null
元素。我首先使用 int find(variant,int from 0) 来查找第一个空索引。然后我使用 insert(position,variant)
填充该空索引。但我发现它不断寻找旁边的 null
并最终将它们全部填满。因此,结果是一个完全填充的数组。如何让它填充第一个仅找到一次的内容?例如,在我选择一件物品后,一次会填满一个插槽。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
插入
< /a> 方法,插入元素。因此,Array
将拥有它拥有的所有元素,加上您插入的元素(Array
将多一个元素)。 这就是为什么文档提到它在较大的数组上会变慢。因此,
insert
永远不会摆脱任何null
(或任何其他元素)Array
拥有。这就是为什么你不断发现相同的东西。您想要的不是插入新元素,而是覆盖现有元素。您可以通过索引访问来做到这一点:
例如,它可以是这样的:
这里我们在
my_array
中搜索null
,如果我们找到它(如果find
没有'返回-1
),我们将null
替换为new_value
。您应该能够根据您的需要调整该代码。The
insert
method, inserts the element. So theArray
will have all the elements it had, plus the one you inserted (TheArray
will have one more element). This is why the documentation mentions that it becomes slow on larger arrays.As a result,
insert
never gets rid of anynull
(or any other element) theArray
had. Which is why you keep finding the same.What you want is not to insert a new element, but to overwrite an existing one. You do that with index access:
For example, it can be something like this:
Here we search for
null
inmy_array
, and if we find it (iffind
didn't return-1
), we replace thatnull
with anew_value
. You should be able to adapt that code to your needs.哦,我刚刚意识到我也在使用
所以,它循环整个数组并找到 null 并填充整个数组。我在想为什么 theraot 的代码不起作用。现在想通了:)
Oh, I just realized I was also using
So, it loops the whole array and finds null and fills the whole array. I was thinking why theraot's code didn't work. Now figured out:)