This is an isometric world represented as a 2D grid of triangles. Each cell of the grid
also keeps track of the depth of the triangle. Since I only keep track of the
closest, it is impossible to remove blocks - but you can replace existing
blocks or add new ones. To allow for removals or transparency in blocks, each
cell would need to be a linked list of triangles, keeping not only the tile id and
depth, but also whether the tile was opaque or not.
Honestly, there's no real good reason to do isometric graphics this way. It
is a pain in the butt, but hey, I did it (in the laziest, dumbest way possible).
|