Changeset 1733
- Timestamp:
- 2011-06-07 13:31:04 (12 years ago)
- Location:
- 2011/23/sijoseha/AdventureGame/AdventureGame
- Files:
-
- 1 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
2011/23/sijoseha/AdventureGame/AdventureGame/AdventureGame.cs
r1729 r1733 35 35 36 36 Map gameMap; 37 Camera gameCamera; 38 39 Viewport mapView, hudView; 37 40 38 41 Button saveButton; … … 52 55 protected override void Initialize() 53 56 { 54 55 56 57 58 59 //graphics.IsFullScreen = true; 60 //graphics.ApplyChanges(); 57 61 IsMouseVisible = true; 58 62 base.Initialize(); … … 70 74 selectionBox = Content.Load<Texture2D>("selectionbox"); 71 75 tileImage = Content.Load<Texture2D>("tilet"); 72 gameMap = new Map(this, tileImage, TILE_SIZE, 16, 8); 73 74 saveButton = new Button(new Rectangle(400, 100, 150, 40), "Save", Color.YellowGreen, Color.Red, GraphicsDevice); 76 77 mapView = new Viewport(0, 0, graphics.PreferredBackBufferWidth - 200, graphics.PreferredBackBufferHeight); 78 hudView = new Viewport(graphics.PreferredBackBufferWidth - 200, 0, 200, graphics.PreferredBackBufferHeight); 79 80 gameMap = new Map(this, tileImage, TILE_SIZE, 50, 20); 81 gameCamera = new Camera(); 82 saveButton = new Button(new Rectangle(10, 10, 150, 40), "Save", Color.YellowGreen, Color.Red, GraphicsDevice); 75 83 } 76 84 … … 100 108 if (previousMouseState.LeftButton == ButtonState.Released && mouseState.LeftButton == ButtonState.Pressed) 101 109 { 102 Rectangle mousePos = new Rectangle(mouseState.X, mouseState.Y, 1, 1); 103 foreach (Tile tile in gameMap.Tiles) 104 { 105 if (mousePos.Intersects(tile.Boundaries)) 110 if (mouseState.X < graphics.PreferredBackBufferWidth - 200) 111 { 112 Vector2 mouseWorldPos = gameCamera.getMouseWorldPos(new Vector2(mouseState.X, mouseState.Y), mapView); 113 Rectangle mousePos = new Rectangle((int)mouseWorldPos.X, (int)mouseWorldPos.Y, 1, 1); 114 foreach (Tile tile in gameMap.Tiles) 106 115 { 107 gameMap.UnSelectAll(); 108 gameMap.SelectTile(tile); 116 if (mousePos.Intersects(tile.Boundaries)) 117 { 118 gameMap.UnSelectAll(); 119 gameMap.SelectTile(tile); 120 } 109 121 } 110 122 } 111 if (mousePos.Intersects(saveButton.Boundaries)) 112 SaveMap(); 123 else 124 { 125 Vector2 mouseWorldPos = gameCamera.getMouseWorldPos(new Vector2(mouseState.X - hudView.X, mouseState.Y), hudView); 126 Rectangle mousePos = new Rectangle((int)mouseWorldPos.X, (int)mouseWorldPos.Y, 1, 1); 127 if (mousePos.Intersects(saveButton.Boundaries)) 128 SaveMap(); 129 } 113 130 } 114 131 … … 121 138 if (keyState.IsKeyDown(Keys.D4) && previousKeyState.IsKeyUp(Keys.D4)) 122 139 gameMap.ChangeTileTo(TileType.Water); 140 141 if (keyState.IsKeyDown(Keys.Left)) 142 gameCamera.Move(new Vector2(-5, 0)); 143 if (keyState.IsKeyDown(Keys.Right)) 144 gameCamera.Move(new Vector2(5, 0)); 145 if (keyState.IsKeyDown(Keys.Up)) 146 gameCamera.Move(new Vector2(0, -5)); 147 if (keyState.IsKeyDown(Keys.Down)) 148 gameCamera.Move(new Vector2(0, 5)); 123 149 previousMouseState = mouseState; 124 150 previousKeyState = keyState; … … 133 159 { 134 160 GraphicsDevice.Clear(Color.CornflowerBlue); 161 GraphicsDevice.Viewport = mapView; 162 spriteBatch.Begin(SpriteSortMode.Deferred, 163 BlendState.AlphaBlend, 164 null,null,null,null,gameCamera.getTransformation(mapView)); 165 gameMap.Draw(spriteBatch); 166 spriteBatch.End(); 167 GraphicsDevice.Viewport = hudView; 135 168 spriteBatch.Begin(); 136 gameMap.Draw(spriteBatch);137 169 saveButton.Draw(spriteBatch); 138 170 spriteBatch.End(); … … 144 176 { 145 177 //FileStream mapFile = File.Create("savedMap,xml"); 146 147 XmlWriterSettings settings = new XmlWriterSettings(); 148 settings.ConformanceLevel = ConformanceLevel.Document; 149 settings.Indent = true; 150 settings.Encoding = Encoding.UTF8; 151 using (XmlWriter xmlWriter = XmlWriter.Create("savedMap", settings)) 178 using (FileStream mapSave = new FileStream("savedMap", FileMode.Create, FileAccess.Write)) 152 179 { 153 xmlWriter.WriteStartDocument(); 154 xmlWriter.WriteStartElement("Map"); 155 foreach (Tile tile in gameMap.Tiles) 180 using (BinaryWriter w = new BinaryWriter(mapSave)) 181 { 182 w.Write(gameMap.Tiles.Count); 183 foreach (Tile tile in gameMap.Tiles) 184 { 185 w.Write((int)tile.TileType); 186 w.Write((int)tile.Position.X); 187 w.Write((int)tile.Position.Y); 188 } 189 } 190 } 191 192 using (FileStream mapLoad = new FileStream("savedMap", FileMode.Open, FileAccess.Read)) 156 193 { 157 xmlWriter.WriteStartElement("Tile"); 158 xmlWriter.WriteStartElement("TileType"); 159 xmlWriter.WriteValue(tile.TileType.ToString()); 160 xmlWriter.WriteEndElement(); 161 //xmlWriter.WriteAttributeString("TileType", tile.TileType.ToString()); 162 //xmlWriter.WriteAttributeString("X", tile.Position.X.ToString()); 163 //xmlWriter.WriteAttributeString("Y", tile.Position.Y.ToString()); 164 xmlWriter.WriteEndElement(); 165 } 166 xmlWriter.WriteEndElement(); 167 xmlWriter.WriteEndDocument(); 168 } 169 194 using (BinaryReader r = new BinaryReader(mapLoad)) 195 { 196 using (StreamWriter random = new StreamWriter("clear.txt")) 197 { 198 int amount = r.ReadInt32(); 199 for (int i = 0; i < amount; i++) 200 { 201 int tile = r.ReadInt32(); 202 int x = r.ReadInt32(); 203 int y = r.ReadInt32(); 204 random.WriteLine(tile.ToString() + ' ' + x.ToString() + ' ' + y.ToString()); 205 } 206 } 207 } 208 } 170 209 } 171 210 } -
2011/23/sijoseha/AdventureGame/AdventureGame/AdventureGame.csproj
r1727 r1733 109 109 <ItemGroup> 110 110 <Compile Include="Button.cs" /> 111 <Compile Include="Camera.cs" /> 111 112 <Compile Include="Map.cs" /> 112 113 <Compile Include="Properties\AssemblyInfo.cs" /> -
2011/23/sijoseha/AdventureGame/AdventureGame/Tile.cs
r1727 r1733 10 10 public enum TileType 11 11 { 12 Grass ,13 Water ,14 Sand ,15 DarkGrass ,12 Grass = 1, 13 Water = 2, 14 Sand = 3, 15 DarkGrass = 4, 16 16 } 17 17 public class Tile
Note: See TracChangeset
for help on using the changeset viewer.