Skip to content
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}` );
}
Clone this wiki locally