CocosCreator | 给节点施加力、冲量、防止穿墙

      this.targetBody
        .getComponent(cc.RigidBody)
        .applyLinearImpulse(
          force,
          this.targetBody.getComponent(cc.RigidBody).getWorldCenter(),
          true
        )

1. 首先获取节点的RigidBody

2. 施加线性冲量applyLinearImpulse,有三个参数

(method) cc.RigidBody.applyLinearImpulse(impulse: cc.Vec2, point: cc.Vec2, wake: boolean): void

参数1:impulse: cc.Vec2

    冲量,类型是cc.Vec2向量---世界坐标,例如 cc.v2(0, 1000) 表示竖直向上的冲量,

参数2:point: cc.Vec2

    力作用点,类型是cc.Vec2向量类型---世界坐标,例如 node.getComponent(cc.RigidBody).getWorldCenter()获取质心---世界坐标。

参数3:wake: boolean

    是否唤醒刚体,类型是布尔值。意思是,刚体如果撞到障碍停下,则需要唤醒才可以再次施加力。

物理引擎自带了防止穿墙效果,但是你不能直接操作节点的position属性,必须通过施加力来移动节点。

我写的一个demo,代码在github上面

Saber2pr/EdgePhys

预览效果https://saber2pr.github.io/MyWeb/build/EdgePhys/build/web-mobile

猜你喜欢

转载自blog.csdn.net/u011607490/article/details/84189468