示例#1
0
        public void CollisionCheck()
        {
            var gameObjectsToRemove = new HashSet <ILaneObject>();

            foreach (var monster in MonsterCollection)
            {
                foreach (var bullet in BulletCollection)
                {
                    if (monster.LanePosition <= bullet.LanePosition)
                    {
                        if (monster.Color == bullet.Color)
                        {
                            gameObjectsToRemove.Add(monster);

                            // Killed a monster => scored
                            Score.UpdateScore(
                                Score.MonsterKilledPoints);
                        }

                        gameObjectsToRemove.Add(bullet);
                    }
                }
            }

            // Remove the objects
            MonsterCollection.RemoveWhere(
                monster => gameObjectsToRemove.Contains(monster));
            BulletCollection.RemoveWhere(
                bullet => gameObjectsToRemove.Contains(bullet));
        }
示例#2
0
 public void MoveBullets()
 {
     foreach (var bullet in BulletCollection)
     {
         bullet.LanePosition += 1;
     }
     BulletCollection.RemoveWhere(
         bullet => !IsInsideLane(bullet));
 }
示例#3
0
        public void ChangeLanesLength(int newLength)
        {
            Length = newLength;

            // Remove all Bullets outside the lane
            MonsterCollection.RemoveWhere(
                monster => !IsInsideLane(monster));

            // Remove all Bullets outside the lane
            BulletCollection.RemoveWhere(
                bullet => !IsInsideLane(bullet));
        }