Browse Source

make CollisionTargets an auto property

GitOrigin-RevId: ca7bf8f68b
master
Colin McMillen 4 years ago
parent
commit
bb8cf9e63b
  1. 17
      Shared/World.cs

17
Shared/World.cs

@ -83,7 +83,6 @@ namespace SemiColinGames {
public const int TileSize = 16;
readonly Tile[] tiles;
readonly Aabb[] collisionTargets;
// Size of World in terms of tile grid.
private readonly int tileWidth;
@ -160,24 +159,24 @@ namespace SemiColinGames {
}
tiles = tilesList.ToArray();
// Because we added tiles from left to right, the collisionTargets are sorted by x-position.
// We maintain this invariant so that it's possible to efficiently find collisionTargets that
// Because we added tiles from left to right, the CollisionTargets are sorted by x-position.
// We maintain this invariant so that it's possible to efficiently find CollisionTargets that
// are nearby a given x-position.
collisionTargets = new Aabb[tiles.Length + 2];
CollisionTargets = new Aabb[tiles.Length + 2];
// Add a synthetic collisionTarget on the left side of the world.
collisionTargets[0] = new Aabb(new Vector2(-1, 0), new Vector2(1, float.MaxValue));
CollisionTargets[0] = new Aabb(new Vector2(-1, 0), new Vector2(1, float.MaxValue));
// Now add all the normal collisionTargets for every static terrain tile.
Vector2 halfSize = new Vector2(TileSize / 2, TileSize / 2);
for (int i = 0; i < tiles.Length; i++) {
Vector2 center = new Vector2(
tiles[i].Position.Left + halfSize.X, tiles[i].Position.Top + halfSize.Y);
collisionTargets[i + 1] = new Aabb(center, halfSize);
CollisionTargets[i + 1] = new Aabb(center, halfSize);
}
// Add a final synthetic collisionTarget on the right side of the world.
collisionTargets[tiles.Length + 1] = new Aabb(
CollisionTargets[tiles.Length + 1] = new Aabb(
new Vector2(Width + 1, 0), new Vector2(1, float.MaxValue));
}
@ -187,8 +186,6 @@ namespace SemiColinGames {
}
}
public Aabb[] CollisionTargets {
get { return collisionTargets; }
}
public Aabb[] CollisionTargets { get; }
}
}
Loading…
Cancel
Save