Kezarus
Endless Game Maker
Good day to you!
I did an autotile code but the end result is ugly AF. The pieces are on the right spot, btw.
Here is the code:
Here is the tiles:
That's the result:
I think I need to put a border, not a transparency behind the tiles, but that got even worst.
Maybe I am not understanding something fundamental. Coud anyone help me on that matter?
p.s.: I would love to do some animated water tiles too, but I have so much struggle as it is already... =/
I did an autotile code but the end result is ugly AF. The pieces are on the right spot, btw.
Here is the code:
GML:
///@definition bitmask_cell
///@param wx - coord x
///@param wy - coord y
var wx = argument[0];
var wy = argument[1];
var cellSize = global.cellSize;
var myTile = tilemap_get_at_pixel(global.tilemapBiomeId, wx, wy);
//ALLOWED TILES
var tileOffset;
switch( myTile ){
case MapGenBiomesEnum.Ocean: tileOffset = 0; break;
case MapGenBiomesEnum.River: tileOffset = 16*1; break;
case MapGenBiomesEnum.Grass: tileOffset = 16*2; break;
case MapGenBiomesEnum.Snow: tileOffset = 16*3; break;
default:
return;
}
var tileTop = myTile == tilemap_get_at_pixel(global.tilemapBiomeId, wx, wy-1);
var tileBottom = myTile == tilemap_get_at_pixel(global.tilemapBiomeId, wx, wy+cellSize);
var tileLeft = myTile == tilemap_get_at_pixel(global.tilemapBiomeId, wx-1, wy);
var tileRight = myTile == tilemap_get_at_pixel(global.tilemapBiomeId, wx+cellSize, wy);
var newTileId =
(tileTop ? 1 : 0) +
(tileLeft ? 2 : 0) +
(tileRight ? 4 : 0) +
(tileBottom ? 8 : 0);
//CONVERT BIT TO TILE ID (thread reader: this is here to make a understandable tile image instead of a mambo jambo on the png, the below image shows where to put things =])
switch(newTileId){
case 0: newTileId = 0; break; case 1: newTileId = 12; break; case 2: newTileId = 3; break; case 3: newTileId = 15; break;
case 4: newTileId = 1; break; case 5: newTileId = 13; break; case 6: newTileId = 2; break; case 7: newTileId = 14; break;
case 8: newTileId = 4; break; case 9: newTileId = 8; break; case 10: newTileId = 7; break; case 11: newTileId = 11; break;
case 12: newTileId = 5; break; case 13: newTileId = 9; break; case 14: newTileId = 6; break; case 15: newTileId = 10; break;
}
newTileId += tileOffset;
tilemap_set_at_pixel(global.tilemapMaskId, newTileId, wx, wy);
That's the result:
I think I need to put a border, not a transparency behind the tiles, but that got even worst.
Maybe I am not understanding something fundamental. Coud anyone help me on that matter?
p.s.: I would love to do some animated water tiles too, but I have so much struggle as it is already... =/