public static void CollisionsCheck(List<DynamicObject> dynamicObjects, List<Gun> bullet, Ship battleShip) { for (int i = 0; i < dynamicObjects.Count; i++) { if ((dynamicObjects[i].GetPosition.Row == battleShip.GetPosition.Row && (dynamicObjects[i].GetPosition.Col >= battleShip.GetPosition.Col && dynamicObjects[i].GetPosition.Col <= battleShip.GetPosition.Col + 4))) { battleShip.Collide(dynamicObjects[i]); dynamicObjects[i].Collide(battleShip); } for (int j = 0; j < bullet.Count; j++) { if (j >= bullet.Count || i >= dynamicObjects.Count) { break; } if (dynamicObjects[i].GetPosition.Row == bullet[j].GetPosition.Row && dynamicObjects[i].GetPosition.Col == bullet[j].GetPosition.Col) { CollisionCounter += 10; bullet[j].Collide(dynamicObjects[i]); dynamicObjects[i].Collide(bullet[j]); bullet.RemoveAt(j); } } } }
public void AddShip(GameObjects obj) { this.battleShip = obj as Ship; this.allObjects.Add(obj); }
static void MainMain() { //Intro.printIntro(); Console.BufferWidth = Console.WindowWidth; Console.BufferHeight = Console.WindowHeight; int speed = 100; ObjectDrawer gameRenderer = new ObjectDrawer(Console.WindowHeight, 60); IUserInterface keyboard = new KeyboardInterface(); Engine gameEngine = new Engine(gameRenderer, keyboard, speed); Position shipPos = new Position(Console.BufferHeight - 3, 30); Ship ship = new Ship(shipPos); gameEngine.AddShip(ship); keyboard.OnUpPressed += (sender, eventInfo) => { gameEngine.MoveShipUp(); }; keyboard.OnDownPressed += (sender, eventInfo) => { gameEngine.MoveShipDown(); }; keyboard.OnLeftPressed += (sender, eventInfo) => { gameEngine.MoveShipLeft(); }; keyboard.OnRightPressed += (sender, eventInfo) => { gameEngine.MoveShipRight(); }; keyboard.OnActionPressed += (sender, eventInfo) => { gameEngine.ShipShoot(); }; keyboard.OnPausePressed += (sender, eventInfo) => { Console.SetCursorPosition((Console.WindowWidth / 2) - 6, Console.WindowHeight / 2); Console.WriteLine("Press any key to continue!"); Console.ReadKey(true); }; gameEngine.Run(); TryAgain: try { StarshipFightMain.Restart(); } catch (GameException) { Console.WriteLine(); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Invalid button! Try Again"); Console.ResetColor(); goto TryAgain; } }