Description:
Add (broken) tile picker.
Commit status:
[Not Reviewed]
References:
Diff options:
Comments:
0 Commit comments
0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
@@ -44,7 +44,6 | |||
|
44 | 44 | private int aiScore = 0; |
|
45 | 45 | |
|
46 | 46 | //new tile stuff |
|
47 | TileMap myMap = new TileMap(); | |
|
48 | 47 | int squaresAcross = 50; |
|
49 | 48 | int squaresDown = 50; |
|
50 | 49 | int baseOffsetX = -14; |
@@ -54,6 +53,9 | |||
|
54 | 53 | |
|
55 | 54 | TileMap map; |
|
56 | 55 | |
|
56 | Vector2 mouseGrid; | |
|
57 | Vector2 original_point; | |
|
58 | ||
|
57 | 59 | |
|
58 | 60 | private static void Main(string[] args) |
|
59 | 61 | { |
@@ -155,6 +157,52 | |||
|
155 | 157 | music.Dispose(); |
|
156 | 158 | } |
|
157 | 159 | |
|
160 | Vector2 calculateMousegrid(Vector2 normalizedMousePos) | |
|
161 | { | |
|
162 | int gridx = (int)((normalizedMousePos.X ) / Tile.TileWidth); | |
|
163 | int gridy = (int)((normalizedMousePos.Y + (2*baseOffsetY)) / (Tile.TileStepY)); | |
|
164 | ||
|
165 | ||
|
166 | ||
|
167 | ||
|
168 | int within_gridx = (int)(normalizedMousePos.X % Tile.TileWidth) - (Tile.TileWidth/2); | |
|
169 | int within_gridy = (int)(normalizedMousePos.Y % Tile.TileHeight) - (Tile.TileHeight / 2); | |
|
170 | ||
|
171 | int middle_distance = Math.Abs(within_gridx) + Math.Abs(within_gridx); | |
|
172 | Vector2 adjustment_vector; | |
|
173 | ||
|
174 | //return new Vector2(gridx, gridy); | |
|
175 | if (middle_distance < (Tile.TileWidth / 2)) | |
|
176 | { | |
|
177 | return new Vector2(gridx, gridy); | |
|
178 | } | |
|
179 | ||
|
180 | else if ((Math.Sign(within_gridx) == -1) && (Math.Sign(within_gridy) == 1)) | |
|
181 | { | |
|
182 | adjustment_vector = new Vector2(-1, -1); | |
|
183 | return new Vector2(gridx, gridy) + adjustment_vector; | |
|
184 | } | |
|
185 | else if ((Math.Sign(within_gridx) == -1) && (Math.Sign(within_gridy) == -1)) | |
|
186 | { | |
|
187 | adjustment_vector = new Vector2(-1, 1); | |
|
188 | return new Vector2(gridx, gridy) + adjustment_vector; | |
|
189 | } | |
|
190 | else if ((Math.Sign(within_gridx) == 1) && (Math.Sign(within_gridy) == 1)) | |
|
191 | { | |
|
192 | adjustment_vector = new Vector2(0, -1); | |
|
193 | return new Vector2(gridx, gridy) + adjustment_vector; | |
|
194 | } | |
|
195 | else if ((Math.Sign(within_gridx) == 1) && (Math.Sign(within_gridy) == -1)) | |
|
196 | { | |
|
197 | adjustment_vector = new Vector2(0, 1); | |
|
198 | return new Vector2(gridx, gridy) + adjustment_vector; | |
|
199 | } | |
|
200 | else { | |
|
201 | return new Vector2(gridx, gridy); | |
|
202 | } | |
|
203 | ||
|
204 | } | |
|
205 | ||
|
158 | 206 | |
|
159 | 207 | |
|
160 | 208 | protected override void Update(GameTime gameTime) |
@@ -239,6 +287,18 | |||
|
239 | 287 | this.camera.Move(new Vector2(0, 4)); |
|
240 | 288 | } |
|
241 | 289 | |
|
290 | ||
|
291 | ||
|
292 | this.original_point = Vector2.Transform(new Vector2(mouseCur.X, mouseCur.Y), Matrix.Invert(camera.get_transformation(GraphicsDevice))); | |
|
293 | ||
|
294 | //int gridx = (int)((this.original_point.X-baseOffsetX) / Tile.TileStepX); | |
|
295 | /* int gridx = (int)(this.original_point.Y / Tile.TileHeight + this.original_point.X / Tile.TileWidth); */ | |
|
296 | //int gridy = (int)((this.original_point.Y-baseOffsetY) / (Tile.TileStepY*2)); | |
|
297 | /* int gridy = (int)(this.original_point.Y / Tile.TileHeight - this.original_point.X / Tile.TileWidth); */ | |
|
298 | ||
|
299 | //this.mouseGrid = new Vector2(gridx, gridy); | |
|
300 | this.mouseGrid = this.calculateMousegrid(this.original_point); | |
|
301 | ||
|
242 | 302 | elapsedTime += gameTime.ElapsedGameTime; |
|
243 | 303 | |
|
244 | 304 | if (elapsedTime > TimeSpan.FromSeconds(1)) |
@@ -341,6 +401,8 | |||
|
341 | 401 | Vector2.Zero, |
|
342 | 402 | SpriteEffects.None, |
|
343 | 403 | 0.9f); |
|
404 | ||
|
405 | ||
|
344 | 406 | } |
|
345 | 407 | } |
|
346 | 408 | |
@@ -390,6 +452,9 | |||
|
390 | 452 | drawTileAt(0, 0, 22, 1); |
|
391 | 453 | |
|
392 | 454 | |
|
455 | drawTileAt((int)this.mouseGrid.X, (int)this.mouseGrid.Y, 2, 1); | |
|
456 | ||
|
457 | ||
|
393 | 458 | /* |
|
394 | 459 | |
|
395 | 460 | for (int i = 0; i< 80; i++) |
@@ -420,7 +485,7 | |||
|
420 | 485 | |
|
421 | 486 | if (this.map.cells[i][j].hasTree) |
|
422 | 487 | { |
|
423 | drawTileAt(i, j, 142, 2); | |
|
488 | //drawTileAt(i, j, 142, 2); | |
|
424 | 489 | } |
|
425 | 490 | |
|
426 | 491 | |
@@ -448,6 +513,15 | |||
|
448 | 513 | batch.DrawString(font, this.map.tree_count.ToString(), new Vector2(330, 33), Color.Black, 0.0f, Vector2.Zero, 1.0f, SpriteEffects.None, 0.5f); |
|
449 | 514 | batch.DrawString(font, this.map.tree_count.ToString(), new Vector2(329, 32), Color.White, 0.0f, Vector2.Zero, 1.0f, SpriteEffects.None, 0.49f); |
|
450 | 515 | |
|
516 | ||
|
517 | ||
|
518 | batch.DrawString(font, this.mouseGrid.ToString(), new Vector2(360, 33), Color.Black, 0.0f, Vector2.Zero, 1.0f, SpriteEffects.None, 0.5f); | |
|
519 | batch.DrawString(font, this.mouseGrid.ToString(), new Vector2(359, 32), Color.White, 0.0f, Vector2.Zero, 1.0f, SpriteEffects.None, 0.49f); | |
|
520 | /* | |
|
521 | batch.DrawString(font, this.original_point.ToString(), new Vector2(360, 33), Color.Black, 0.0f, Vector2.Zero, 1.0f, SpriteEffects.None, 0.5f); | |
|
522 | batch.DrawString(font, this.original_point.ToString(), new Vector2(359, 32), Color.White, 0.0f, Vector2.Zero, 1.0f, SpriteEffects.None, 0.49f); | |
|
523 | */ | |
|
524 | //Matrix.Multiply() | |
|
451 | 525 | batch.End(); |
|
452 | 526 | |
|
453 | 527 | |
@@ -458,4 +532,4 | |||
|
458 | 532 | } |
|
459 | 533 | |
|
460 | 534 | |
|
461 | } No newline at end of file | |
|
535 | } |
@@ -15,6 +15,9 | |||
|
15 | 15 | public int MapWidth = 50; |
|
16 | 16 | public int MapHeight = 50; |
|
17 | 17 | |
|
18 | public int ZoneWidth = 10; | |
|
19 | public int ZoneHeight = 10; | |
|
20 | ||
|
18 | 21 | public int tree_count |
|
19 | 22 | { |
|
20 | 23 | get |
@@ -67,6 +70,20 | |||
|
67 | 70 | } |
|
68 | 71 | } |
|
69 | 72 | |
|
73 | public System.Collections.IEnumerable tree_cells(int zone) | |
|
74 | { | |
|
75 | foreach (List<Cell> row in cells) | |
|
76 | { | |
|
77 | foreach (Cell cell in row) | |
|
78 | { | |
|
79 | if (cell.hasTree) | |
|
80 | { | |
|
81 | yield return cell; | |
|
82 | } | |
|
83 | } | |
|
84 | } | |
|
85 | } | |
|
86 | ||
|
70 | 87 | public System.Collections.IEnumerable iterate_cells() |
|
71 | 88 | { |
|
72 | 89 | foreach (List<Cell> row in cells) |
You need to be logged in to leave comments.
Login now