/// <summary> /// Mouse handler of picture box. /// Moves the player ship to the new mouse position. /// </summary> private void GameMouseMove(object sender, MouseEventArgs args) { int x = args.X; if (x >= 0 && x + _ship.Width <= _pictureBox.Width) { _ship.Move(args.X); } }
/// <summary> /// Move the object. Last call to move was deltaT seconds ago. /// </summary> /// <param name="deltaT">Time ellapsed since last move.</param> public void Move(double deltaT) { if ((Position.x >= 0 && (Position.x + Size.Width) < Game.game.gameSize.Width)) { foreach (SpaceShip ship in Ships) { ship.Move(deltaT, SpeedX.x); } Position.x += SpeedX.x * deltaT; if ((Position.x + Size.Width) >= Game.game.gameSize.Width) { for (int i = 0; i < deltaT * 2000; ++i) { foreach (SpaceShip Ship in Ships) { Ship.Position.y += SpeedY.y * deltaT; } Position.y += SpeedY.y * deltaT; } SpeedX = -SpeedX * 1.1; } } else if (Position.x > 1) { foreach (SpaceShip Ship in Ships) { Ship.Move(deltaT, SpeedX.x); } Position.x += SpeedX.x * deltaT; } else if (Position.x < 1) { for (int i = 0; i < deltaT * 2000; ++i) { foreach (SpaceShip Ship in Ships) { Ship.Position.y += SpeedY.y * deltaT; } Position.y += SpeedY.y * deltaT; } SpeedX = -SpeedX * 1.1; foreach (SpaceShip Ship in Ships) { Ship.Position.x += SpeedX.x / 10; } Position.x += SpeedX.x / 10; } }