在这里,还是用纸牌游戏来举例。一桌纸牌,我们需要纸牌是动态生成并存储到数据结构里,再进行排序打乱。要实现这样的洗牌功能,在GMS2里要如何实现呢?
请参考这里https://indienova.com/home/blogread/25382 ,然后,洗牌就用这两行代码
randomize(); ds_list_shuffle(deck);
在godot里,要实现类似的功能,可以用数组。
for i in deck_size: var id = obj_card.instance() deck.append(id)
表示实例化的东西存到deck数组里,然后洗牌的代码是这些
deck_full=deck.duplicate() #对数组deck_full进行洗牌 randomize(); for i in deck_size: deck_full[i]=i%cards_number deck_full.shuffle() for i in deck_size: deck[i].type=deck_full[i] deck[i].face=0 deck[i].index=i
从上面的代码长度比较起来,GMS2里的更加方便,洗牌只用到两行代码。
第一次听说GMS2比Godot方便的!(等你熟悉Godot后再这样说)
我也是从GMS2转Godot
Array = [a, b, c, d, e]
#排序
Array.sort()
#随机排序
Array.shuffle()
#随机种子排序
randomize()
Array.shuffle()
希望能帮到你!