Description:
Limit lines to grid.
Commit status:
[Not Reviewed]
References:
Diff options:
Comments:
0 Commit comments
0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
@@ -315,9 +315,9 | |||||
|
315 | batch.Draw( |
|
315 | batch.Draw( |
|
316 | Tile.TileSetTexture, |
|
316 | Tile.TileSetTexture, |
|
317 | new Rectangle( |
|
317 | new Rectangle( |
|
318 | ((x * Tile.TileStepX) - offsetX + rowOffset + baseOffsetX), |
|
318 | (4*((x * Tile.TileStepX)) - offsetX + 4*rowOffset + 4*baseOffsetX), |
|
319 | ((y * Tile.TileStepY) - offsetY + baseOffsetY), |
|
319 | (4*((y * Tile.TileStepY)) - offsetY + 4*baseOffsetY), |
|
320 |
|
|
320 | 4 * Tile.TileWidth, 4 * Tile.TileHeight), |
|
321 | Tile.GetSourceRectangle(1), |
|
321 | Tile.GetSourceRectangle(1), |
|
322 | Color.White, |
|
322 | Color.White, |
|
323 | 0.0f, |
|
323 | 0.0f, |
@@ -331,7 +331,7 | |||||
|
331 |
|
331 | ||
|
332 | //Gridlines |
|
332 | //Gridlines |
|
333 | //Lines going down and to the right: |
|
333 | //Lines going down and to the right: |
|
334 | for (int x = (-this.squaresAcross); x < this.squaresAcross; x++) |
|
334 | for (int x = (int)(-this.squaresAcross/2); x < this.squaresAcross; x++) |
|
335 | { |
|
335 | { |
|
336 | int rowOffset = 0; |
|
336 | int rowOffset = 0; |
|
337 |
|
337 | ||
@@ -341,11 +341,16 | |||||
|
341 | Vector2 stop = new Vector2(startX + this.squaresAcross* Tile.TileStepX/2, |
|
341 | Vector2 stop = new Vector2(startX + this.squaresAcross* Tile.TileStepX/2, |
|
342 | this.squaresDown*Tile.TileStepY- baseOffsetY+4); |
|
342 | this.squaresDown*Tile.TileStepY- baseOffsetY+4); |
|
343 |
|
343 | ||
|
344 | Line.drawLine(batch, start, stop, Color.White, 0.8f); |
|
344 | |
|
|
345 | |||
|
|
346 | Line.drawLine(batch, | ||
|
|
347 | Line.departurePoint(stop, start, this.squaresAcross * Tile.TileWidth, this.squaresDown * Tile.TileHeight), | ||
|
|
348 | Line.departurePoint(start, stop, this.squaresAcross * Tile.TileWidth, this.squaresDown * Tile.TileHeight), | ||
|
|
349 | Color.White, 0.8f); | ||
|
345 |
|
350 | ||
|
346 | } |
|
351 | } |
|
347 | //Lines going down and to the left: |
|
352 | //Lines going down and to the left: |
|
348 |
for (int x = 0; x < ( |
|
353 | for (int x = 0; x < (int)(1.5*this.squaresAcross); x++) |
|
349 | { |
|
354 | { |
|
350 |
|
355 | ||
|
351 | float startX = (x * Tile.TileStepX) + baseOffsetX - (Tile.TileStepX / 2); |
|
356 | float startX = (x * Tile.TileStepX) + baseOffsetX - (Tile.TileStepX / 2); |
@@ -354,7 +359,10 | |||||
|
354 | Vector2 stop_reverse = new Vector2(startX + -(this.squaresAcross * Tile.TileStepX / 2), |
|
359 | Vector2 stop_reverse = new Vector2(startX + -(this.squaresAcross * Tile.TileStepX / 2), |
|
355 | (this.squaresDown * Tile.TileStepY) - baseOffsetY + 4); |
|
360 | (this.squaresDown * Tile.TileStepY) - baseOffsetY + 4); |
|
356 |
|
361 | ||
|
357 | Line.drawLine(batch, start_reverse, stop_reverse, Color.White, 0.8f); |
|
362 | Line.drawLine(batch, |
|
|
363 | Line.departurePoint(stop_reverse, start_reverse, this.squaresAcross * Tile.TileWidth, this.squaresDown * Tile.TileHeight), | ||
|
|
364 | Line.departurePoint(start_reverse, stop_reverse, this.squaresAcross * Tile.TileWidth, this.squaresDown * Tile.TileHeight), | ||
|
|
365 | Color.White, 0.8f); | ||
|
358 |
|
366 | ||
|
359 | } |
|
367 | } |
|
360 |
|
368 | ||
@@ -365,21 +373,18 | |||||
|
365 | drawTileAt(0, 0, 22, 1); |
|
373 | drawTileAt(0, 0, 22, 1); |
|
366 |
|
374 | ||
|
367 |
|
375 | ||
|
368 |
|
|
376 | /* |
|
369 |
|
|||
|
370 |
|
|
377 | |
|
371 |
|
|||
|
372 | for (int i = 0; i< 80; i++) |
|
378 | for (int i = 0; i< 80; i++) |
|
373 | { |
|
379 | { |
|
374 | for (int j = 0; j < 50; j += 1) |
|
380 | for (int j = 0; j < 50; j += 1) |
|
375 | { |
|
381 | { |
|
376 | //Warning: creates a flashing effect because tree positions update every 1/60th of a second |
|
382 | //Warning: creates a flashing effect because tree positions update every 1/60th of a second |
|
377 |
|
|
383 | |
|
378 | /* |
|
||
|
379 | if (this.random_generator.NextDouble() > 0.75) |
|
384 | if (this.random_generator.NextDouble() > 0.75) |
|
380 | { |
|
385 | { |
|
381 | drawTileAt(i, j, 142, 2); |
|
386 | drawTileAt(i, j, 142, 2); |
|
382 |
} |
|
387 | } |
|
383 |
|
|
388 | |
|
384 | if ((i + j) % 3 == 0) |
|
389 | if ((i + j) % 3 == 0) |
|
385 | { |
|
390 | { |
@@ -40,6 +40,43 | |||||
|
40 |
|
40 | ||
|
41 | Line.PixelTexture.SetData<Color> (new Color[] { Color.White}); |
|
41 | Line.PixelTexture.SetData<Color> (new Color[] { Color.White}); |
|
42 | } |
|
42 | } |
|
|
43 | |||
|
|
44 | public static Vector2 departurePoint(Vector2 start, Vector2 stop, float width, float height) | ||
|
|
45 | { | ||
|
|
46 | if (MathUtils.Between(stop.X, 0, width ) && MathUtils.Between(stop.Y, 0, height)) { | ||
|
|
47 | return stop; | ||
|
|
48 | } | ||
|
|
49 | |||
|
|
50 | float slope = (start.Y - stop.Y) / (start.X - stop.X); | ||
|
|
51 | |||
|
|
52 | float intercept = (start.Y - (slope * start.X)); | ||
|
|
53 | |||
|
|
54 | if (stop.X < 0) { | ||
|
|
55 | float newY = slope * 0 + intercept; | ||
|
|
56 | return new Vector2(0, newY); | ||
|
|
57 | } | ||
|
|
58 | else if (stop.Y < 0) | ||
|
|
59 | { | ||
|
|
60 | float newX = intercept / slope; | ||
|
|
61 | return new Vector2(newX, 0); | ||
|
|
62 | |||
|
|
63 | } | ||
|
|
64 | |||
|
|
65 | else if (stop.Y > height) | ||
|
|
66 | { | ||
|
|
67 | float newX = (intercept + height) / slope; | ||
|
|
68 | return new Vector2(newX, height); | ||
|
|
69 | } | ||
|
|
70 | else if (stop.X > width) | ||
|
|
71 | { | ||
|
|
72 | float newY = slope * width + intercept; | ||
|
|
73 | return new Vector2(width, newY); | ||
|
|
74 | } | ||
|
|
75 | |||
|
|
76 | return stop;//TODO | ||
|
|
77 | |||
|
|
78 | |||
|
|
79 | } | ||
|
43 | } |
|
80 | } |
|
44 |
|
81 | ||
|
45 |
|
82 |
You need to be logged in to leave comments.
Login now