Пример #1
0
        public static bool CollideWithBullet(BulletPlayer bulletPlayer)
        {
            for (int i = 0; i < aliens.Length; i++)
            {
                if (aliens[i].IsAlive)
                {
                    //Vector2 dist = aliens[i].Position.Sub(bullet.Position);
                    //if (dist.GetLength() <= aliens[i].GetWidth()/2 + bullet.GetWidth()/2)
                    if (bulletPlayer.Collides(aliens[i].Position, aliens[i].GetWidth() / 2))
                    {
                        //alien dies
                        if (aliens[i].OnHit())
                        {
                            Game.AddScore(5);
                            IncAliensSpeed(1.05f);
                            //he's dead
                            if (aliens[i].CanShoot)
                            {
                                int prevAlienIndex = i - aliensPerRow;
                                while (prevAlienIndex >= 0)
                                {
                                    if (aliens[prevAlienIndex].IsAlive)
                                    {
                                        aliens[prevAlienIndex].CanShoot = true;
                                        break;
                                    }

                                    prevAlienIndex -= aliensPerRow;
                                }
                            }

                            numAlives--;
                        }


                        return(true);
                    }
                }
            }
            return(false);
        }