public void PlayerCollidesWithMissile(Player p) { //Checks all missiles against the passed-in player object foreach (Missile m in _missles) { if ((SwinGame.CircleTriangleCollision(m.Shape, p.Shape)) && (p.Collision)) { p.Destroy(); m.Active = false; } } }
public void CollidesWithHostile(Player p) { //Behaviour for Asteroids foreach (Asteroid a in _asteroids) { //Check player + asteroid collision if (SwinGame.CircleTriangleCollision(a.Shape, p.Shape) && p.Collision) { p.Destroy(); } //Check player missle + asteroid collision foreach (Missile playerMissile in p.Missiles._missles) { if (SwinGame.CircleCircleCollision(a.Shape, playerMissile.Shape)) { SwinGame.PlaySoundEffect(SwinGame.SoundEffectNamed("hitEnemy")); a.Active = false; playerMissile.Active = false; playerMissile.AddScore(); } } } //Behaviour for aliens foreach (Alien a in _aliens) { //Check player + alien collision if (SwinGame.CircleTriangleCollision(a.Shape, p.Shape) && p.Collision) { p.Destroy(); } //Check player + alien missiles collision a.Missiles.PlayerCollidesWithMissile(p); //Check player missle + alien collision foreach (Missile playerMissile in p.Missiles._missles) { if (SwinGame.CircleCircleCollision(a.Shape, playerMissile.Shape) && a.Collision) { a.Destroy(); playerMissile.Active = false; playerMissile.AddScore(); } } } }