Description:
Add basic TileMap.
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r9:e331e7031db2 -

@@ -9,7 +9,7
9 9 using SpriteFontPlus;
10 10 using isometricparkfna;
11 11 using System.Diagnostics;
12
12 using System.Collections.Generic;
13 13
14 14 class FNAGame : Game
15 15 {
@@ -45,13 +45,15
45 45
46 46 //new tile stuff
47 47 TileMap myMap = new TileMap();
48 int squaresAcross = 25;
49 int squaresDown = 25;
48 int squaresAcross = 50;
49 int squaresDown = 50;
50 50 int baseOffsetX = -14;
51 51 int baseOffsetY = -14;
52 52
53 53 GraphicsDevice device;
54 54
55 TileMap map;
56
55 57
56 58 private static void Main(string[] args)
57 59 {
@@ -78,6 +80,21
78 80 //gdm.SynchronizeWithVerticalRetrace = false;
79 81 IsFixedTimeStep = false;
80 82
83 this.map = new TileMap(this.squaresAcross, this.squaresDown);
84
85 foreach (List<Cell> row in this.map.cells)
86 {
87 foreach (Cell cell in row)
88 {
89 if (this.random_generator.NextDouble() > 0.75)
90 {
91 cell.hasTree = true;
92 }
93
94
95 }
96 }
97
81 98 Content.RootDirectory = "Content";
82 99
83 100
@@ -262,7 +279,7
262 279 Tile.TileSetTexture,
263 280 new Rectangle(
264 281 (x * Tile.TileStepX) - offsetX + rowOffset + baseOffsetX,
265 (y * Tile.TileStepY) - offsetY + baseOffsetY,
282 (y * Tile.TileStepY) - offsetY + baseOffsetY-(Tile.TileHeight*(height-1)),
266 283 Tile.TileWidth, Tile.TileHeight*height),
267 284 Tile.GetExtendedSourceRectangle(tileIndex, height),
268 285 Color.White,
@@ -315,9 +332,9
315 332 batch.Draw(
316 333 Tile.TileSetTexture,
317 334 new Rectangle(
318 (4*((x * Tile.TileStepX)) - offsetX + 4*rowOffset + 4*baseOffsetX),
319 (4*((y * Tile.TileStepY)) - offsetY + 4*baseOffsetY),
320 4 * Tile.TileWidth, 4 * Tile.TileHeight),
335 ((x * Tile.TileStepX) - offsetX + rowOffset + baseOffsetX),
336 ((y * Tile.TileStepY) - offsetY + baseOffsetY),
337 Tile.TileWidth, Tile.TileHeight),
321 338 Tile.GetSourceRectangle(1),
322 339 Color.White,
323 340 0.0f,
@@ -395,6 +412,22
395 412 }//*/
396 413
397 414
415 for (int i = 0; i < this.map.MapHeight; i++)
416 {
417 for (int j = 0; j < this.map.MapWidth; j += 1)
418 {
419 //Warning: creates a flashing effect because tree positions update every 1/60th of a second
420
421 if (this.map.cells[i][j].hasTree)
422 {
423 drawTileAt(i, j, 142, 2);
424 }
425
426
427 }
428 }
429
430
398 431 batch.End();
399 432
400 433 batch.Begin(SpriteSortMode.BackToFront,
@@ -412,6 +445,9
412 445 batch.DrawString(font, camera.position.ToString(), new Vector2(190, 33), Color.Black, 0.0f, Vector2.Zero, 1.0f, SpriteEffects.None, 0.5f);
413 446 batch.DrawString(font, camera.position.ToString(), new Vector2(189, 32), Color.White, 0.0f, Vector2.Zero, 1.0f, SpriteEffects.None, 0.49f);
414 447
448 batch.DrawString(font, this.map.trees.ToString(), new Vector2(330, 33), Color.Black, 0.0f, Vector2.Zero, 1.0f, SpriteEffects.None, 0.5f);
449 batch.DrawString(font, this.map.trees.ToString(), new Vector2(329, 32), Color.White, 0.0f, Vector2.Zero, 1.0f, SpriteEffects.None, 0.49f);
450
415 451 batch.End();
416 452
417 453
@@ -11,13 +11,59
11 11
12 12 public class TileMap
13 13 {
14 //public List<List<Tile>> Tiles;
14 public List<List<Cell>> cells;
15 15 public int MapWidth = 50;
16 16 public int MapHeight = 50;
17 17
18 public int trees
19 {
20 get
21 {
22 int count = 0;
23 foreach (List<Cell> row in cells)
24 {
25 foreach (Cell cell in row)
26 {
27 if (cell.hasTree)
28 {
29 count++;
30 }
31 }
32 }
33 return count;
34 }
35 }
36
18 37 public TileMap()
19 38 {
39 //TileMap(MapWidth, MapHeight);
40 }
41
42 public TileMap(int width, int height)
43 {
44 this.MapWidth = width;
45 this.MapHeight = height;
46
47 this.cells = new List<List<Cell>>();
48
49 for (int i = 0; i < height; i++)
50 {
51 List<Cell> newRow = new List<Cell>();
52 for (int j = 0; j < width; j++)
53 {
54 newRow.Add(new Cell());
55 }
56
57 this.cells.Add(newRow);
58 }
20 59
21 60 }
61
62
63 }
64
65 public class Cell
66 {
67 public Boolean hasTree = false;
22 68 }
23 69 }
You need to be logged in to leave comments. Login now