Exemplo n.º 1
0
 public BrickBlock(BlockContext context)
 {
     this.context = context;
 }
Exemplo n.º 2
0
 public QuestionBlock(BlockContext context)
 {
     this.context = context;
 }
Exemplo n.º 3
0
 public HiddenBlock(BlockContext context)
 {
     this.context = context;
 }
Exemplo n.º 4
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);
        }