-
-
Notifications
You must be signed in to change notification settings - Fork 76
YHH edited this page Dec 10, 2020
·
3 revisions
如果你需要更多的控制碰撞发生时的情况,你也可以手动检查与其他碰撞器的碰撞。下一个片段将检查与一个特定的 Collider 的碰撞。请注意,当你这样做时,deltaMovement
不会为你调整。当解决碰撞时,你可以考虑 minimumTranslationVector
。
// 声明CollisionResult
let collisionResult = new es.CollisionResult();
// 检查entity.getComponent<Collider>是否与其他Collider发生碰撞
if( entity.getComponent<es.Collider>(es.Collider).collidesWith( someOtherCollider, deltaMovement, collisionResult ) )
{
// 将实体移动到与被击中的Collider直接相邻的位置,然后记录CollisionResult
entity.position = es.Vector2.add(entity.position, es.Vector2.substract(deltaMovement, collisionResult.minimumTranslationVector));
console.log( `碰撞结果: ${collisionResult}` );
}