Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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;
                }
            }
        }