我一直在尝试在 Godot 中随机化有序数组(例如:[0,1,2,3])中的值。应该有一个数组的 shuffle() 方法,但它似乎被破坏并且总是返回“null”。我找到了一种使用 Fisher-Yates shuffle 的解决方法,但是生成的数组被引擎认为是“未排序的”,因此当我尝试使用 bsearch() 等方法通过它的位置查找值时,结果是充其量是不可靠的。
我的解决方案是创建一个字典,由一个包含我获得的随机值的数组组成,并与第二个长度相等的数组与(排序的)数字(按数字顺序)合并,然后我可以将其用作访问特定数组位置的键需要的时候。
问题变得简单...
在 GDScript 中,您将如何获取 2 个数组。例如:ARRAY1 = [0,1,2,3] ARRAY2 = [a,b,c,d]
..并合并它们以形成一个如下所示的字典: MergedDictionary = {0:a, 1:b, 2:c, 3:d}
任何帮助将不胜感激。
Godot 不支持像 Python 那样合并数组的“zip”方法,所以我只能手动合并它们。然而......尽管我进行了数小时的搜索,但几乎没有关于如何在 GDScript 中执行此操作的文档。