private void CheckPlayerEnemyCollision() { Rectangle playerHitbox = SuperMarioBros.Instance.GameStateManager.Player.Rectangle; foreach (IEnemy enemy in world.Enemies) { Rectangle enemyHitbox = enemy.Rectangle; Rectangle intersection = Rectangle.Intersect(playerHitbox, enemyHitbox); if (!intersection.IsEmpty) { CollisionSide side = GetCollisionSide(intersection, playerHitbox, enemyHitbox); EnemyCollisionHandler.HandleCollision(enemy, SuperMarioBros.Instance.GameStateManager.Player, side); } } }
private void CheckEnemyEnemyCollision() { foreach (IEnemy colliderEnemy in world.Enemies) { foreach (IEnemy collidedEnemy in world.Enemies) { if (collidedEnemy != colliderEnemy) { Rectangle colliderEnemyHitbox = colliderEnemy.Rectangle; Rectangle enemyHitbox = collidedEnemy.Rectangle; Rectangle intersection = Rectangle.Intersect(colliderEnemyHitbox, enemyHitbox); if (!intersection.IsEmpty) { CollisionSide side = GetCollisionSide(intersection, colliderEnemyHitbox, enemyHitbox); EnemyCollisionHandler.HandleCollision(colliderEnemy, collidedEnemy, side); } } } } }
private void CheckEnemyBlockCollision() { foreach (IEnemy enemy in world.Enemies) { IList <IBlock> blocksInScope = FindBlocksCollidedWithGameObject(enemy); foreach (IBlock block in blocksInScope) { if (block != null) { Rectangle enemyHitbox = enemy.Rectangle; Rectangle blockHitbox = block.Rectangle; Rectangle intersection = Rectangle.Intersect(enemyHitbox, blockHitbox); if (!intersection.IsEmpty) { CollisionSide side = GetCollisionSide(intersection, enemyHitbox, blockHitbox); EnemyCollisionHandler.HandleCollision(enemy, block, side); } } } } }