private void Update(double elapsedTime) { if (camera == null) { camera = new View(Program.windowSize / 2, Program.windowSize); _window.SetView(camera); } _settingsGui.Update(); _animationManager.Update(elapsedTime); }
private void Update(double elapsedTime, Text score) { _animationManager.Update(elapsedTime); /*if (_score == null) * { * _score = score; * * MainMenu.SetTextOriginToMiddle(score); * score.Position += new Vector2D(score.GetGlobalBounds().Width / 2, score.GetGlobalBounds().Height / 2); * Vector2D scorePosition = new Vector2D(score.Position.X + (Program.windowSize.X / 2 - score.Position.X) / 1.5, _gameOver.Position.Y + _gameOver.GetGlobalBounds().Height * 4); * _animationManager.AddAnimation(new MoveAnimation(scorePosition, new Transformable[] { score }, 1000, 0, false)); * * }*/ }
private void Update(double elapsedTime, List <Text> scores) { _animationManager.Update(elapsedTime); if (_scores == null) { _scores = scores; foreach (Text score in _scores) { MainMenu.SetTextOriginToMiddle(score); score.Position += new Vector2D(score.GetGlobalBounds().Width / 2, score.GetGlobalBounds().Height / 2); Vector2D scorePosition = new Vector2D(score.Position.X + (Program.windowSize.X / 2 - score.Position.X) / 1.5, _gameOver.Position.Y + _gameOver.GetGlobalBounds().Height * 4); _animationManager.AddAnimation(new Animation(scorePosition, new Transformable[] { score }, 1000, 0, false)); } } }
private void Update(double elapsedTime) { int lifeImagesCount = _lifeImages.Count; for (int i = lifeImagesCount; i < Program.lifes; i++) { Text lifeImage = new Text("|", _font, (uint)_lifeImagesSize); MainMenu.SetTextOriginToMiddle(lifeImage); lifeImage.Position = _lifeImagesPosition + (_lifeImagesDistance + Vector2D.Right() * lifeImage.GetGlobalBounds().Width) * i + (Vector2D.Right() * lifeImage.GetGlobalBounds().Width) / 2; _lifeImages.Add(lifeImage); } bool rectangleObject1Collided = false; bool rectangleObject2Collided = false; if (_player1 != null) { rectangleObject1Collided = _player1.PongCollision(_circleObject); } if (_player2 != null) { rectangleObject2Collided = _player2.PongCollision(_circleObject); } int numberOfBrickCollisions = 0; List <RectangleObject> collidedBricks = new List <RectangleObject>(); Vector2D oldCircleDirection = _circleObject.Direction; foreach (RectangleObject brick in _bricks) { if (brick.NewReflectionCollision(_circleObject, _animationManager)) { brick.Life--; if (brick.Life >= 0) { brick.ChangeToPrefab(RectangleObject.rectangleShapePrefabs[brick.Life]); } numberOfBrickCollisions++; collidedBricks.Add(brick); Vector2D originalPosition = Vector2D.Zero(); foreach (RectangleObject brickPrefab in _bricksPrefab) { if (brickPrefab.ID == brick.ID) { originalPosition = brickPrefab.Rectangle.Position; } } _animationManager.RemoveAnimationsToObject(brick.Rectangle); Vector2D animationPosition = brick.Rectangle.Position + oldCircleDirection * 5; _animationManager.AddAnimation(new Animation(brick.Rectangle.Position, new Transformable[] { brick.Rectangle }, 200, 0, animationPosition)); _animationManager.AddAnimation(new Animation(animationPosition, new Transformable[] { brick.Rectangle }, 200, 200, originalPosition)); } } if (numberOfBrickCollisions > 0) { if (_player1 != null && _player2 != null) { if (_lastHit.Equals(_player1)) { _score1 += numberOfBrickCollisions; } if (_lastHit.Equals(_player2)) { _score2 += numberOfBrickCollisions; } } else { if (_player1 != null) { _score1++; } if (_player2 != null) { _score2++; } } foreach (RectangleObject brick in collidedBricks) { if (brick.Life < 0) { if (_random.Next(0, _probabilityOfPowerUp) == 0) { PowerUp newPowerUp = _prefabPowerUps[_random.Next(0, _prefabPowerUps.Count)].Clone(); double speed = 0.3f; newPowerUp.Spawn(new Vector2D(brick.Rectangle.Position.X, brick.Rectangle.Position.Y), new Vector2D(0, 1), speed); _powerUps.Add(newPowerUp); } _bricks.Remove(brick); } } } if (_bricks.Count == 0 && _loadedLevel == _persistenceManager.LoadLevelList()[_persistenceManager.LoadLevelList().Count - 1]) { Program.windowState = Program.WindowState.GameOver; } else if (_bricks.Count == 0 && (rectangleObject1Collided || rectangleObject2Collided)) { _loadedLevel = _persistenceManager.LoadLevelList()[_levelID++]; _bricks = _persistenceManager.LoadLevel(_loadedLevel); _bricksPrefab = _persistenceManager.LoadLevel(_loadedLevel); for (int i = 0; i < _bricks.Count; i++) { _bricks[i].Rectangle.Position += _brickPosition; _bricksPrefab[i].Rectangle.Position += _brickPosition; } } List <PowerUp> usedPowerUps = new List <PowerUp>(); foreach (PowerUp powerUp in _powerUps) { powerUp.Update(elapsedTime); RectangleObject collidedRectangle = null; if (_player1 != null) { if (_player1.PowerUpCollision(powerUp)) { collidedRectangle = _player1; } } if (_player2 != null) { if (_player2.PowerUpCollision(powerUp)) { collidedRectangle = _player2; } } if (collidedRectangle != null) { powerUp.ExecutePowerUp(collidedRectangle); usedPowerUps.Add(powerUp); } else if (powerUp.Position.X < 0 || powerUp.Position.X > Program.windowSize.X) { usedPowerUps.Add(powerUp); } } foreach (PowerUp powerUp in usedPowerUps) { _powerUps.Remove(powerUp); } usedPowerUps.Clear(); _stateManager.Update(elapsedTime); _circleObject.Update(elapsedTime); bool resetCircleObject = false; if (_circleObject.CheckOutOfField((int)Program.windowSize.X, (int)Program.windowSize.Y)) { Program.lifes--; _lifeImages.RemoveAt(_lifeImages.Count - 1); if (Program.lifes <= 0) { Program.windowState = Program.WindowState.GameOver; } resetCircleObject = true; _circleObject.ResetPosition(_circlePosition); _circleObject.Direction = new Vector2D(-_circleObject.Direction.X, _circleObject.Direction.Y); _circleObject.Update(0); _powerUps.Clear(); } if ((rectangleObject1Collided || rectangleObject2Collided) && _player1 != null && _player2 != null) { /*Vector2D savedPos = _player1.Rectangle.Position; * _player1.Rectangle.Position = _player2.Rectangle.Position; * _player2.Rectangle.Position = savedPos;*/ _animationManager.AddAnimation(new Animation(_player1.Rectangle.Position, new Transformable[] { _player2.Rectangle }, 100, 0, false)); _animationManager.AddAnimation(new Animation(_player2.Rectangle.Position, new Transformable[] { _player1.Rectangle }, 100, 0, false)); if (rectangleObject1Collided) { _lastHit = _player1; } if (rectangleObject2Collided) { _lastHit = _player2; } } _aiLeft.Update(elapsedTime, rectangleObject2Collided, rectangleObject1Collided, resetCircleObject); _aiRight.Update(elapsedTime, rectangleObject1Collided, rectangleObject2Collided, resetCircleObject); if (_score1 < 10) { _scoreLeftText.DisplayedString = "0" + _score1.ToString(); } else { _scoreLeftText.DisplayedString = _score1.ToString(); } if (_score2 < 10) { _scoreRightText.DisplayedString = "0" + _score2.ToString(); } else { _scoreRightText.DisplayedString = _score2.ToString(); } _animationManager.Update(elapsedTime); }
private void Update(double elapsedTime) { Joystick.Update(); if (_camera == null) { _camera = new View(Vector2D.Zero(), Program.windowSize); } _dataManager.Window.SetView(_camera); if (_dataManager.PlayerCount == 1) { _camera.Center = _dataManager.Players[0].transform.Position; } if (_dataManager.PlayerCount == 2) { _camera.Center = _dataManager.Players[1].transform.Position + (_dataManager.Players[0].transform.Position - _dataManager.Players[1].transform.Position) / 2; if (Keyboard.IsKeyPressed(Keyboard.Key.Z)) { _dataManager.Players[1].GetScripts <AttackScript>()[0].AttackInterval = 300; } } if (Program.windowState == Program.WindowState.MainMenu || Program.windowState == Program.WindowState.GameOver) { _camera.Center = Program.windowSize / 2; } foreach (GameObject gameobject in _dataManager.GameObjects) { gameobject.Update(elapsedTime); } //MyConsole.Out((_dataManager.Players[0].transform.Position / 48).ToString()); if (_mapManager.ActiveMap == 0) { _dataManager.DeleteMap(); _mapManager.CreateMap(1); } if (_mapManager.ActiveMap == 1) { foreach (GameObject player in _dataManager.Players) { if (player.transform.Position.Y < -_tileSize * 49) { _dataManager.DeleteMap(); _mapManager.CreateMap(2); Program.reachedLevel = 2; } } } if (_mapManager.ActiveMap == 2) { if (_dataManager.Enemies.Count == 0) { Program.windowState = Program.WindowState.GameOver; } } if (Program.reachedLevel == 2 && _mapManager.ActiveMap < 2) { _dataManager.DeleteMap(); _mapManager.CreateMap(2); } List <ICollider> colliderList = _dataManager.Environment.GetComponentsInChilds <ICollider>(); _colliderUpdate.CheckCollision(colliderList); _colliderUpdate.Collide(); _dataManager.StateManager.Update(elapsedTime); _animationManager.Update(elapsedTime); }
private void Update(double elapsedTime) { Joystick.Update(); if (camera == null) { camera = new View(Vector2D.Zero(), Program.windowSize); } _dataManager.Window.SetView(camera); if (_dataManager.PlayerCount == 1) { camera.Center = _dataManager.Players[0].transform.Position; } if (_dataManager.PlayerCount == 2) { camera.Center = _dataManager.Players[1].transform.Position + (_dataManager.Players[0].transform.Position - _dataManager.Players[1].transform.Position) / 2; if (Keyboard.IsKeyPressed(Keyboard.Key.Z)) { _dataManager.Players[1].GetScripts <AttackScript>()[0].AttackInterval = 300; } } if (Program.windowState == Program.WindowState.MainMenu || Program.windowState == Program.WindowState.GameOver) { camera.Center = Program.windowSize / 2; } if (_dataManager.AddToEnvironment.Count > 0) { foreach (GameObject newEnv in _dataManager.AddToEnvironment) { _dataManager.Environment.SetChild(newEnv); } _dataManager.AddToEnvironment.Clear(); } foreach (GameObject gameobject in _dataManager.GameObjects) { gameobject.Update(elapsedTime); } if (_mapManager.ActiveMap == 0) { _dataManager.DeleteMap(); _mapManager.CreateMap(1); } if (_mapManager.ActiveMap == 1) { foreach (GameObject player in _dataManager.Players) { if (player.transform.Position.Y - Program.windowSize.Y / 2 < -50 * 49) { _mapManager.TeleportPlayer(new Vector2D(0, 0)); _dataManager.DeleteMap(); _mapManager.CreateMap(2); Program.reachedLevel = 2; } } } if (_mapManager.ActiveMap == 2) { if (_dataManager.Enemies.Count == 0) { Program.windowState = Program.WindowState.GameOver; } } if (Program.reachedLevel == 2 && _mapManager.ActiveMap < 2) { _mapManager.TeleportPlayer(new Vector2D(0, 0)); _dataManager.DeleteMap(); _mapManager.CreateMap(2); } List <ICollider> colliderList = _dataManager.Environment.GetComponentsInChilds <ICollider>(); _colliderUpdate.CheckCollision(colliderList); _colliderUpdate.Collide(); _dataManager.StateManager.Update(elapsedTime); int countSpeed = 20; if (_dataManager.Score >= _displayedScore) { int add = (_dataManager.Score - _displayedScore) / countSpeed; if (add == 0) { add = _dataManager.Score - _displayedScore; } _displayedScore += add; } _scoreText.DisplayedString = _displayedScore.ToString(); _scoreText.Position = new Vector2D(camera.Center.X + Program.windowSize.X / 2 - _scoreText.GetGlobalBounds().Width - 50, camera.Center.Y + Program.windowSize.Y / 2 - _scoreText.GetGlobalBounds().Height - 50); _animationManager.Update(elapsedTime); }
private void Update(double elapsedTime) { _settingsGui.Update(); _animationManager.Update(elapsedTime); }