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上面<