岩石拒绝适当分裂

问题描述

基本上,当玩家与岩石碰撞时,岩石应分裂成较小的岩石。取而代之的是,岩石会创建一个新的岩石,该岩石更小,然后变成更大的岩石,为什么要这样做呢?

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)使您的循环只有一个迭代。