2D Tile Engine!
Yay!
Just a few demos using only 10×10 tiles:
How it happens:
A 10×10 tile is created using a boolean array:
for(int i=0;i<10;i++){
for(int j=0;j<10;j++){
tiles[i,j] = (Random.Range(0.0f,1.0f)>=0.5f);
}
}
Then each tile checks its surrounding tiles and records the environment status into a flag:
byte getFlagsForTile(int i, int j){
byte result = 0;
int curPos = 0;
for(int k=-1;k<=1;k++){
for(int l=-1;l<=1;l++){
if(!(k==0&&l==0)){
if(hasTile(i+k,j+l))
result|=(byte)(1<<curPos);
curPos++;
}
}
}
return result;
}
Based on this flag system:
So if the flag’s first bit is 1, that means there’s a tile on the lower right of this tile.
Using the flag as a guide, the tile can then pick its graphics from this sprite sheet:
That’s it … also I will use the flag information to generate collision.




Wow. That is an awesome sprite sheet.