protected override void OnNavigatedTo(NavigationEventArgs e) { if (e.Parameter == null) { if (_player.tutorial) { InitializeTutorialMap(); } else { InitializeLvl1(); } } else { _map = new Map((Map)e.Parameter, _game); foreach (var item in _map.GetBlocks()) { _game.Children.Add(item.Image); } foreach (var item in _map.GetFixedObjects()) { _game.Children.Add(item.Image); } foreach (var item in _map.GetEnemies()) { _game.Children.Add(item.Image); } _game.Background = _map.BackgroundImageBrush; _player.currentLvl = -2; _player.tutorial = false; _player.SetPositionInCanvas(_map.GetPlayerStartingPosition().Left, _map.GetPlayerStartingPosition().Top); } base.OnNavigatedTo(e); }
private void Gravity() { //player gravity //toggle for jetpack effect if (!_jump) { // get the current position in canvas Point currentPosition = _player.GetPositionInCanvas(); //make a new position to move to. _newPosition = new Point(currentPosition.Top + _forceOnPlayer, currentPosition.Left); //checks to see that the player is not standing on a block if (!_player.IsCollidingWithMap(_map.GetBlocks(), _newPosition)) { //move the player down by the amount of force acting on him _player.MoveDown(_forceOnPlayer); //increase the force for next time _forceOnPlayer++; } //player has hit the map so reset the force else { _forceOnPlayer = 1; } } //enemies gravity //do for each enemy not going to be very visible to the player, mostly there to allow a more dynamic enemy positionining foreach (Enemy enemy in _map.GetEnemies()) { //get the current position in canvas Point currentPostion = enemy.GetPositionInCanvas(); //make a new position to move to. _newPosition = new Point(currentPostion.Top + _forceOnEnemies, currentPostion.Left); //checks to see that the enemy is not standing on a block if (!enemy.IsCollidingWithMap(_map.GetBlocks(), _newPosition)) { //move the enemy down by the amount of force acting on him enemy.MoveDown(_forceOnEnemies); //increase the force for next time _forceOnEnemies++; } //enemy has hit the map so reset the force else { _forceOnEnemies = 1; } } //boss if (_map.GetBoss() != null) { //get the current position in canvas Point currentPostion = _map.GetBoss().GetPositionInCanvas(); //make a new position to move to. _newPosition = new Point(currentPostion.Top + _forceOnBoss, currentPostion.Left); //checks to see that the enemy is not standing on a block if (!_map.GetBoss().IsCollidingWithMap(_map.GetBlocks(), _newPosition)) { //move the enemy down by the amount of force acting on him _map.GetBoss().MoveDown(_forceOnBoss); //increase the force for next time _forceOnBoss++; } else { _forceOnBoss = 1; } } }