Ignore:
Timestamp:
2011-06-09 15:14:45 (8 years ago)
Author:
tekrjant
Message:

Generates random map on startup.
Saving works and loading added
Minor "optimization" done

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2011/23/sijoseha/AdventureGame/AdventureGame/AdventureGame.cs

    r1758 r1822  
    7373 
    7474            CreateViews(); 
    75             gameMap = new Map(this, tileImage, TILE_SIZE, 20, 20); 
     75            gameMap = new Map(this, tileImage, TILE_SIZE, 5000, 5000); 
    7676            CreateHUD(); 
    7777 
     
    137137                            else 
    138138                                button.Pressed(); 
     139                    } 
     140                } 
     141            } 
     142 
     143            if (previousMouseState.RightButton == ButtonState.Released && mouseState.RightButton == ButtonState.Pressed) 
     144            { 
     145                if (mouseState.X < gameHUD.ViewPort.X) 
     146                { 
     147                    Vector2 mouseWorldPos = gameCamera.getMouseWorldPos(new Vector2(mouseState.X, mouseState.Y), mapView); 
     148                    Rectangle mousePos = new Rectangle((int)mouseWorldPos.X, (int)mouseWorldPos.Y, 1, 1); 
     149                    foreach (Tile tile in gameMap.Tiles) 
     150                    { 
     151                        if (mousePos.Intersects(tile.Boundaries)) 
     152                        { 
     153                            gameMap.ChangeTileTo(tile, gameHUD.SelectedButton.RelatedTileType); 
     154                        } 
    139155                    } 
    140156                } 
     
    187203            DrawMap(); 
    188204            DrawHUD(); 
    189             DrawMiniMap(); 
     205            //DrawMiniMap(); 
    190206            base.Draw(gameTime); 
    191207        } 
     
    239255            gameHUD = new HUD(); 
    240256            gameHUD.ViewPort = hudView; 
    241             gameHUD.AddButton(new Button 
     257            Button LoadButton = new Button 
     258                (new Rectangle(10, 150, 150, 40), 
     259                "Load", Color.YellowGreen, Color.Red, GraphicsDevice); 
     260            LoadButton.Clicked += LoadMap; 
     261            gameHUD.AddButton(LoadButton); 
     262 
     263            Button SaveButton = new Button 
    242264                (new Rectangle(10, 10, 150, 40), 
    243                 "Save", Color.YellowGreen, Color.Red, GraphicsDevice, SaveMap)); 
    244              
    245             gameHUD.AddButton(new Button( 
    246                 new Rectangle(10,60,32,32), gameMap.textureType[TileType.Grass], 
    247                 Color.Red, true, GraphicsDevice)); 
     265                "Save", Color.YellowGreen, Color.Red, GraphicsDevice); 
     266 
     267            SaveButton.Clicked += SaveMap; 
     268            gameHUD.AddButton(SaveButton); 
     269 
     270            Button grassButton = new Button( 
     271                new Rectangle(10, 60, 32, 32), gameMap.textureType[TileType.Grass], 
     272                Color.Red, true, GraphicsDevice); 
     273            grassButton.RelatedTileType = TileType.Grass; 
     274 
     275            Button sandButton = new Button( 
     276                new Rectangle(10, 100, 32, 32), gameMap.textureType[TileType.Sand], 
     277                Color.Red, true, GraphicsDevice); 
     278            sandButton.RelatedTileType = TileType.Sand; 
     279 
     280            gameHUD.AddButton(grassButton); 
     281            gameHUD.AddButton(sandButton); 
    248282            gameHUD.AddMiniMap(new MiniMap(gameMap, miniMapView, miniMapBorders)); 
    249283 
     
    253287        { 
    254288            return false; 
     289        } 
     290 
     291        private void LoadMap(object sender, EventArgs e) 
     292        { 
     293            using (FileStream mapLoad = new FileStream("savedMap", FileMode.Open, FileAccess.Read)) 
     294            { 
     295                using (BinaryReader r = new BinaryReader(mapLoad)) 
     296                { 
     297                    int amount = r.ReadInt32(); 
     298                    for (int i = 0; i < amount; i++) 
     299                    { 
     300                        int tile = r.ReadInt32(); 
     301                        int x = r.ReadInt32(); 
     302                        int y = r.ReadInt32(); 
     303                        bool passable = r.ReadBoolean(); 
     304                        Tile newTile = new Tile((TileType)tile, 
     305                            new Rectangle(x,y,TILE_SIZE,TILE_SIZE)); 
     306                        newTile.Passable = passable; 
     307                        gameMap.Tiles.Add(newTile); 
     308                    } 
     309                } 
     310            } 
    255311        } 
    256312 
     
    268324                        w.Write((int)tile.Position.X); 
    269325                        w.Write((int)tile.Position.Y); 
     326                        w.Write(tile.Passable); 
    270327                    } 
    271328                } 
     
    284341                            int x = r.ReadInt32(); 
    285342                            int y = r.ReadInt32(); 
    286                             random.WriteLine(tile.ToString() + ' ' + x.ToString() + ' ' + y.ToString()); 
     343                            bool passable = r.ReadBoolean(); 
     344                            random.WriteLine(tile.ToString() + ' ' + x.ToString() + ' ' + y.ToString() + ' ' + passable.ToString()); 
    287345                        } 
    288346                    } 
Note: See TracChangeset for help on using the changeset viewer.