//Collisions public bool CheckCollision(Sprite pSprite) { //Solid objects foreach (Sprite other in solidList) { if (pSprite.HitTest(other)) { return true; } } if (pSprite is Player || pSprite is PlayerBullet) { //Damage blocks foreach (Sprite other in damageList) { if (pSprite.HitTest(other)) { if (pSprite is Player) { Player thisplayer = (Player)pSprite; thisplayer.playerDIE(); DrawPreDefinedLayer(); } else if (pSprite is PlayerBullet) { pSprite.Destroy(); } } } //Enemies foreach (Enemy other in enemyList) { if (other._state != EnemyState.death) { if (pSprite.HitTest(other)) { if (pSprite is Player) { Player thisplayer = (Player)pSprite; thisplayer.playerDIE(); } else if (pSprite is PlayerBullet) { PlayerBullet bullet = (PlayerBullet)pSprite; other.HitByBullet(bullet.damage / 4, player.aimDirection); pSprite.Destroy(); } } } } } return false; }
//Collisions public bool CheckCollision(Sprite pSprite) { //foreach (Sprite other in invisibleList) //{ // if (pSprite is Enemy) // { // if (pSprite.HitTest(other)) // { // //Turn around // } // } //} //Solid objects foreach (Sprite other in solidList) { if (pSprite.HitTest(other)) { return true; } } //Damage blocks foreach (Sprite other in damageList) { if (pSprite.HitTest(other)) { if (pSprite is Player) { Player thisplayer = (Player)pSprite; thisplayer.playerDIE(); } else if (pSprite is PlayerBullet) { pSprite.Destroy(); } } } return false; }