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)); }
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)); }
public void MoveMonsters() { foreach (var monster in MonsterCollection) { monster.LanePosition -= 1; if (!IsInsideLane(monster)) { MonsterCollection.Remove(monster); } } MonsterCollection.RemoveWhere( monster => !IsInsideLane(monster)); }