예제 #1
0
        public void CheckHits()
        {
            for (int j = 0; j < bombs.Count; j++)
            {
                Boolean hit = false;
                Bomb    b   = bombs.ElementAt(j);
                for (int i = 0; i < obstacles.ObstacleList.Count; i++)
                {
                    Obstacle c = obstacles.ObstacleList.ElementAt(i);
                    if (c.Hits(b.Position))
                    {
                        if (c.Radius > 20)
                        {
                            if (level == 1 || level == 3)
                            {
                                obstacles.AddObstacle(new Obstacle(c.Radius / 2, c.Color, new Point(c.Position.X - 20, c.Position.Y - 20), -1, -1));
                                obstacles.AddObstacle(new Obstacle(c.Radius / 2, c.Color, new Point(c.Position.X + 20, c.Position.Y - 20), 1, -1));
                            }

                            if (level == 2)
                            {
                                obstacles.AddObstacle(new Obstacle(c.Radius / 2, c.Color, new Point(c.Position.X - 20, c.Position.Y - 20), -1, -1, c.Parent));
                                obstacles.AddObstacle(new Obstacle(c.Radius / 2, c.Color, new Point(c.Position.X + 20, c.Position.Y - 20), 1, -1, c.Parent));
                            }
                        }
                        points += 50;
                        obstacles.ObstacleList.Remove(c);
                        hit = true;
                    }
                }
                if (hit)
                {
                    bombs.RemoveAt(j);
                }
                if (level == 1 && obstacles.specialObstacle.Hits(b.Position))
                {
                    specialObstaclePassed = true;
                }
            }
        }