Ejemplo n.º 1
0
 public RunningMario(PlayerContext context)
 {
     this.context = context;
 }
Ejemplo n.º 2
0
 public void HitSideTop(PlayerContext player)
 {
     //stop player
 }
Ejemplo n.º 3
0
 public BigCommand(PlayerContext player)
 {
     this.player = player;
 }
Ejemplo n.º 4
0
 public TakeDamageCommand(PlayerContext player)
 {
     this.player = player;
 }
Ejemplo n.º 5
0
 public void HitBottom(IContext entity, PlayerContext player, Rectangle overlap)
 {
     HitFromBottom(player);
 }
Ejemplo n.º 6
0
 public void HitBottom(PlayerContext player)
 {
     //do nothing
 }
Ejemplo n.º 7
0
 public CrouchingMario(PlayerContext context)
 {
     this.context = context;
 }
Ejemplo n.º 8
0
 public void HitFromTopSide(PlayerContext player)
 {
     CurrentBlock.HitSideTop(player);
 }
Ejemplo n.º 9
0
 public IdleMario(PlayerContext context)
 {
     this.context = context;
 }
Ejemplo n.º 10
0
        public List <IEntity> LoadLevel(List <BlockContext> blockControllers, List <IEntity> enemies, Grid grid, GraphicsDeviceManager graphics)
        {
            List <TileMapInterpreter.Entities> list = InterpretNextLine();

            List <IEntity> entities = new List <IEntity>();

            int currentHeight = 0;

            while (!AtEOS())
            {
                for (int i = 0; i < list.Count; i++)
                {
                    Entities entity = list[i];

                    switch (entity)
                    {
                    case Entities.BLANK:
                    {
                        break;
                    }

                    case Entities.BRICK_COIN:
                    {
                        IEntity thing = new BlockContext(BlockContext.Blocks.BRICK, new Vector2(i * Grid.TILE_SIDE, currentHeight * Grid.TILE_SIDE));
                        entities.Add(thing);
                        grid.Add(thing);
                        blockControllers.Add((BlockContext)thing);
                        break;
                    }

                    case Entities.BRICK_COINS:
                    {
                        IEntity thing = new BlockContext(BlockContext.Blocks.BRICK, new Vector2(i * Grid.TILE_SIDE, currentHeight * Grid.TILE_SIDE));
                        entities.Add(thing);
                        grid.Add(thing);
                        blockControllers.Add((BlockContext)thing);
                        break;
                    }

                    case Entities.BRICK_ITEM:
                    {
                        IEntity thing = new BlockContext(BlockContext.Blocks.BRICK, new Vector2(i * Grid.TILE_SIDE, currentHeight * Grid.TILE_SIDE));
                        entities.Add(thing);
                        grid.Add(thing);
                        blockControllers.Add((BlockContext)thing);
                        break;
                    }

                    case Entities.BRICK_NOITEM:
                    {
                        IEntity thing = new BlockContext(BlockContext.Blocks.BRICK, new Vector2(i * Grid.TILE_SIDE, currentHeight * Grid.TILE_SIDE));
                        entities.Add(thing);
                        grid.Add(thing);
                        blockControllers.Add((BlockContext)thing);
                        break;
                    }

                    case Entities.BRICK_STAR:
                    {
                        IEntity thing = new BlockContext(BlockContext.Blocks.BRICK, new Vector2(i * Grid.TILE_SIDE, currentHeight * Grid.TILE_SIDE));
                        entities.Add(thing);
                        grid.Add(thing);
                        blockControllers.Add((BlockContext)thing);
                        break;
                    }

                    case Entities.COIN:
                    {
                        IEntity thing = new Sprites.CoinSprite(i * Grid.TILE_SIDE, currentHeight * Grid.TILE_SIDE, CoinType.Static, CoinFrame.FirstFrame);
                        entities.Add(thing);
                        grid.Add(thing);
                        break;
                    }

                    case Entities.DESTROYED:
                    {
                        break;
                    }

                    case Entities.FLOOR:
                    {
                        IEntity thing = new BlockContext(BlockContext.Blocks.FLOOR, new Vector2(i * Grid.TILE_SIDE, currentHeight * Grid.TILE_SIDE));
                        entities.Add(thing);
                        grid.Add(thing);
                        blockControllers.Add((BlockContext)thing);
                        break;
                    }

                    case Entities.FLOWER:
                    {
                        IEntity thing = new Sprites.FireFlowerSprite(i * Grid.TILE_SIDE, currentHeight * Grid.TILE_SIDE, FireFlowerFrame.FirstFrame);
                        entities.Add(thing);
                        grid.Add(thing);
                        break;
                    }

                    case Entities.GOOMBA:
                    {
                        IEntity thing = new Sprites.RedGoombaSprite(i * Grid.TILE_SIDE, currentHeight * Grid.TILE_SIDE, false);
                        entities.Add(thing);
                        grid.Add(thing);
                        enemies.Add(thing);
                        break;
                    }

                    case Entities.GREEN_KOOPA:
                    {
                        IEntity thing = new Sprites.GreenKoopaSprite(i * Grid.TILE_SIDE, currentHeight * Grid.TILE_SIDE);
                        entities.Add(thing);
                        grid.Add(thing);
                        enemies.Add(thing);
                        break;
                    }

                    case Entities.HIDDEN_HIDDEN:
                    {
                        IEntity thing = new BlockContext(BlockContext.Blocks.HIDDEN, new Vector2(i * Grid.TILE_SIDE, currentHeight * Grid.TILE_SIDE));
                        entities.Add(thing);
                        grid.Add(thing);
                        blockControllers.Add((BlockContext)thing);
                        break;
                    }

                    case Entities.HIDDEN_NONHIDDEN:
                    {
                        IEntity thing = new BlockContext(BlockContext.Blocks.BRICK, new Vector2(i * Grid.TILE_SIDE, currentHeight * Grid.TILE_SIDE));
                        entities.Add(thing);
                        grid.Add(thing);
                        blockControllers.Add((BlockContext)thing);
                        break;
                    }

                    case Entities.SUPER_MUSHROOM:
                    {
                        IEntity thing = new Sprites.MushroomSprite(i * Grid.TILE_SIDE, currentHeight * Grid.TILE_SIDE, MushroomType.Super);
                        entities.Add(thing);
                        grid.Add(thing);
                        break;
                    }

                    case Entities.UP_MUSHROOM:
                    {
                        IEntity thing = new Sprites.MushroomSprite(i * Grid.TILE_SIDE, currentHeight * Grid.TILE_SIDE, MushroomType._1Up);
                        entities.Add(thing);
                        grid.Add(thing);
                        break;
                    }

                    case Entities.PLAYER:
                    {
                        IEntity thing = new PlayerContext(graphics.PreferredBackBufferWidth, graphics.PreferredBackBufferHeight, new Vector2(i * Grid.TILE_SIDE, currentHeight * Grid.TILE_SIDE));
                        entities.Add(thing);
                        grid.Add(thing);
                        break;
                    }

                    case Entities.QUESTION_COIN:
                    {
                        IEntity thing = new BlockContext(BlockContext.Blocks.QUESTION, new Vector2(i * Grid.TILE_SIDE, currentHeight * Grid.TILE_SIDE));
                        entities.Add(thing);
                        grid.Add(thing);
                        blockControllers.Add((BlockContext)thing);
                        break;
                    }

                    case Entities.QUESTION_ITEM:
                    {
                        IEntity thing = new BlockContext(BlockContext.Blocks.QUESTION, new Vector2(i * Grid.TILE_SIDE, currentHeight * Grid.TILE_SIDE));
                        entities.Add(thing);
                        grid.Add(thing);
                        blockControllers.Add((BlockContext)thing);
                        break;
                    }

                    case Entities.QUESTION_STAR:
                    {
                        IEntity thing = new BlockContext(BlockContext.Blocks.QUESTION, new Vector2(i * Grid.TILE_SIDE, currentHeight * Grid.TILE_SIDE));
                        entities.Add(thing);
                        grid.Add(thing);
                        blockControllers.Add((BlockContext)thing);
                        break;
                    }

                    case Entities.RED_KOOPA:
                    {
                        IEntity thing = new Sprites.RedKoopaSprite(i * Grid.TILE_SIDE, currentHeight * Grid.TILE_SIDE);
                        entities.Add(thing);
                        grid.Add(thing);
                        enemies.Add(thing);
                        break;
                    }

                    case Entities.STAIR:
                    {
                        IEntity thing = new BlockContext(BlockContext.Blocks.STAIR, new Vector2(i * Grid.TILE_SIDE, currentHeight * Grid.TILE_SIDE));
                        entities.Add(thing);
                        grid.Add(thing);
                        blockControllers.Add((BlockContext)thing);
                        break;
                    }

                    case Entities.STAR:
                    {
                        IEntity thing = new Sprites.StarmanSprite(i * Grid.TILE_SIDE, currentHeight * Grid.TILE_SIDE, StarmanFrame.FirstFrame);
                        entities.Add(thing);
                        grid.Add(thing);
                        break;
                    }

                    case Entities.USED:
                    {
                        IEntity thing = new BlockContext(BlockContext.Blocks.USED, new Vector2(i * Grid.TILE_SIDE, currentHeight * Grid.TILE_SIDE));
                        entities.Add(thing);
                        grid.Add(thing);
                        blockControllers.Add((BlockContext)thing);
                        break;
                    }

                    default:
                    {
                        break;
                    }
                    }
                }
                list = InterpretNextLine();
                currentHeight++;
            }

            return(entities);
        }
Ejemplo n.º 11
0
        protected override void Initialize()
        {
            //Here we map the buttons and keys to our Action enum
            buttonsMap = new Dictionary <Buttons, ICommand>();
            keysMap    = new Dictionary <Keys, ICommand>();

            level = new Levels.Level1(graphics);

            level.Initialize();

            playerController = level.getPlayerController();

            //BUNCH O BLOCKS TEMPORARY!!!!!!
            //bunchOBlocks[0] = new BlockContext(BlockContext.Blocks.BRICK, new Vector2(100, 250));
            //bunchOBlocks[1] = new BlockContext(BlockContext.Blocks.USED, new Vector2(150, 250));
            //bunchOBlocks[2] = new BlockContext(BlockContext.Blocks.QUESTION, new Vector2(200, 250));
            //bunchOBlocks[3] = new BlockContext(BlockContext.Blocks.STAIR, new Vector2(250, 250));
            //bunchOBlocks[4] = new BlockContext(BlockContext.Blocks.FLOOR, new Vector2(300, 250));
            //bunchOBlocks[5] = new BlockContext(BlockContext.Blocks.HIDDEN, new Vector2(350, 250));

            //add entities
            //entities.Add(bunchOBlocks[0]);

            //entities.Add(bunchOBlocks[1]);
            //entities.Add(bunchOBlocks[2]);
            //entities.Add(bunchOBlocks[3]);
            //entities.Add(bunchOBlocks[4]);
            //entities.Add(bunchOBlocks[5]);

            //entities.Add(player);
            //entities.Add(redGoombaSprite);
            //entities.Add(redKoopaSprite);
            //entities.Add(greenKoopaSprite);

            //entities.Add(_1UpMushroomSprite);
            //entities.Add(staticCoinSprite);
            //entities.Add(blockCoinSprite);
            //entities.Add(fireFlowerSprite);
            //entities.Add(starmanSprite);
            //entities.Add(superMushroomSprite);

            // Instances of commands
            ICommand quitCommand = new QuitCommand(this);

            ICommand moveLeftCommand  = new MoveLeftCommand(playerController);
            ICommand moveRightCommand = new MoveRightCommand(playerController);
            ICommand jumpCommand      = new JumpCommand(playerController);
            ICommand crouchCommand    = new CrouchCommand(playerController);
            ICommand fireballCommand  = new FireballCommand(playerController);
            ICommand pauseCommand     = new PauseCommand(playerController);

            ICommand fireCommand       = new FireCommand(playerController);
            ICommand bigCommand        = new BigCommand(playerController);
            ICommand smallCommand      = new SmallCommand(playerController);
            ICommand takeDamageCommand = new TakeDamageCommand(playerController);
            ICommand boundingCommand   = new BoundingCommand(playerController, ((Level1)level).entities);

            // Assign commands to buttons
            buttonsMap.Add(Buttons.Start, quitCommand);
            buttonsMap.Add(Buttons.Back, null);
            buttonsMap.Add(Buttons.DPadLeft, moveLeftCommand);
            buttonsMap.Add(Buttons.DPadRight, moveRightCommand);
            buttonsMap.Add(Buttons.DPadUp, jumpCommand);
            buttonsMap.Add(Buttons.A, jumpCommand);
            buttonsMap.Add(Buttons.DPadDown, crouchCommand);
            buttonsMap.Add(Buttons.B, fireballCommand);
            buttonsMap.Add(Buttons.X, null);
            buttonsMap.Add(Buttons.Y, null);
            //buttonsMap.Add(Buttons.Start, pauseCommand);

            // Assign commands to keys
            keysMap.Add(Keys.Q, quitCommand);
            keysMap.Add(Keys.Left, moveLeftCommand);
            keysMap.Add(Keys.A, moveLeftCommand);
            keysMap.Add(Keys.Right, moveRightCommand);
            keysMap.Add(Keys.D, moveRightCommand);
            keysMap.Add(Keys.Up, jumpCommand);
            keysMap.Add(Keys.W, jumpCommand);
            keysMap.Add(Keys.Down, crouchCommand);
            keysMap.Add(Keys.S, crouchCommand);
            keysMap.Add(Keys.Space, fireballCommand);
            keysMap.Add(Keys.Escape, pauseCommand);
            keysMap.Add(Keys.Y, smallCommand);
            keysMap.Add(Keys.U, bigCommand);
            keysMap.Add(Keys.I, fireCommand);
            keysMap.Add(Keys.O, takeDamageCommand);
            keysMap.Add(Keys.C, boundingCommand);

            base.Initialize();
        }
Ejemplo n.º 12
0
 public StarMario(PlayerContext context, IPowerState returnState)
 {
     this.context             = context;
     this.context.returnState = returnState;
     this.context.timer.Start();
 }
Ejemplo n.º 13
0
 public SmallCommand(PlayerContext player)
 {
     this.player = player;
 }
Ejemplo n.º 14
0
 public CrouchCommand(PlayerContext player)
 {
     this.player = player;
 }
Ejemplo n.º 15
0
 public MoveLeftCommand(PlayerContext player)
 {
     this.player = player;
 }
Ejemplo n.º 16
0
 //possible actions
 public void HitFromBottom(PlayerContext player)
 {
     CurrentBlock.HitBottom(player);
 }
Ejemplo n.º 17
0
        public void HandleCollision(CollisionDetector.Collision collision, Level1 level)
        {
            if (collision.entity1 is PlayerContext || collision.entity2 is PlayerContext)
            {
                PlayerContext player = null;

                CollisionDetector.CollisionSide side = collision.GetSide();

                if (collision.entity1 is PlayerContext)
                {
                    player = (PlayerContext)collision.entity1;
                }
                else
                {
                    player = (PlayerContext)collision.entity2;

                    if (side == CollisionDetector.CollisionSide.Left)
                    {
                        side = CollisionDetector.CollisionSide.Right;
                    }
                    else if (side == CollisionDetector.CollisionSide.Right)
                    {
                        side = CollisionDetector.CollisionSide.Left;
                    }
                    else if (side == CollisionDetector.CollisionSide.Top)
                    {
                        side = CollisionDetector.CollisionSide.Bottom;
                    }
                    else if (side == CollisionDetector.CollisionSide.Bottom)
                    {
                        side = CollisionDetector.CollisionSide.Top;
                    }

                    Console.WriteLine("E2");
                }
                if (collision.entity1 is BlockContext || collision.entity2 is BlockContext)
                {
                    if (side == CollisionDetector.CollisionSide.Left)
                    {
                        player.Location += new Vector2((float)Math.Ceiling(collision.intersection.width), 0);
                    }
                    else if (side == CollisionDetector.CollisionSide.Right)
                    {
                        player.Location -= new Vector2((float)Math.Ceiling(collision.intersection.width), 0);
                    }
                    else if (side == CollisionDetector.CollisionSide.Top)
                    {
                        player.Location += new Vector2(0, (float)Math.Ceiling(collision.intersection.height));
                    }
                    else if (side == CollisionDetector.CollisionSide.Bottom)
                    {
                        player.Location -= new Vector2(0, (float)Math.Ceiling(collision.intersection.height));
                    }
                }
                else if (collision.entity1 is MushroomSprite || collision.entity2 is MushroomSprite)
                {
                    if (player.currentState == MarioState.Small)
                    {
                        player.ChangeToSuperMario();
                    }
                }
                else if (collision.entity1 is FireFlowerSprite || collision.entity2 is FireFlowerSprite)
                {
                    player.ChangeToFireMario();
                }
                else if (collision.entity1 is GreenKoopaSprite || collision.entity1 is RedKoopaSprite || collision.entity1 is RedGoombaSprite || collision.entity2 is GreenKoopaSprite || collision.entity2 is RedKoopaSprite || collision.entity2 is RedGoombaSprite)
                {
                    if (side == CollisionDetector.CollisionSide.Left)
                    {
                        player.Location += new Vector2((float)Math.Ceiling(collision.intersection.width), 0);
                        player.Damage();
                    }
                    else if (side == CollisionDetector.CollisionSide.Right)
                    {
                        player.Location -= new Vector2((float)Math.Ceiling(collision.intersection.width), 0);
                        player.Damage();
                    }
                    else if (side == CollisionDetector.CollisionSide.Top)
                    {
                        player.Location += new Vector2(0, (float)Math.Ceiling(collision.intersection.height));
                        player.Damage();
                    }
                    else if (side == CollisionDetector.CollisionSide.Bottom)
                    {
                        player.Location -= new Vector2(0, (float)Math.Ceiling(collision.intersection.height));
                    }
                }
            }
        }
Ejemplo n.º 18
0
 public void HitTop(IContext entity, PlayerContext player, Rectangle overlap)
 {
     HitFromTopSide(player);
 }
Ejemplo n.º 19
0
 public void HitBottom(PlayerContext player)
 {
     //stop player somehow
 }
Ejemplo n.º 20
0
 public void HitRight(IContext entity, PlayerContext player, Rectangle overlap)
 {
 }
Ejemplo n.º 21
0
 public DeadMario(PlayerContext context)
 {
     this.context = context;
 }
Ejemplo n.º 22
0
 public void HitSideTop(PlayerContext player)
 {
     //do nothing
 }
Ejemplo n.º 23
0
 public FireCommand(PlayerContext player)
 {
     this.player = player;
 }