问题描述
基本上,当玩家与岩石碰撞时,岩石应分裂成较小的岩石。取而代之的是,岩石会创建一个新的岩石,该岩石更小,然后变成更大的岩石,为什么要这样做呢?
func split():
if scale.length() > 1:
for i in range(1,2):
var offset = Vector2(cos(i * PI / 4),sin(i * PI / 4))
var child = rock.instance()
child.scale = scale/4
child.position = position + offset * scale
child.vel = vel + offset
get_parent().add_child(child)
get_parent().remove_child(self)
完整来源here
编辑:我找到了解决方法。当我最初发布此内容时,我使用_ready()设置新岩石的属性,但我没有意识到在创建新实例时未调用该函数 ,所以当我创建一个孩子时例如,在我更改它们之前没有设置这些属性,但是在将子级添加到父级场景之后才进行设置。因此,要解决此问题,我只需将_ready更改为_init即可解决问题。
解决方法
范围包括低端和高端。
因此,for i in range(1,2)
使您的循环只有一个迭代。