tileson
tileson copied to clipboard
tson::Tileset:getTile() as parameter takes GID - not local tileset ID
As in title.
This couse problems handling animations, when you using multiple tilesets on map:
tson::Frame::getTileId()
- return local tile ID, so tson::Tile *t = tson::Tileset::getTIle( tson::Frame::getTileID() )
- WILL FAIL - returns nullptr
propably cousing segmentation fault.
What you have to do is:
- From current_tileset get
std::vector<tson::Tile> vt = current_tileset.getTiles()
-
int index = frame.getTileId() - 1;
To be specific: its vector index, not some "tile ID". -
tson::Tile tile = vt[ index ]
now you can get drawing rect (but you MUST correct its dimensions id you use tilesets with different tile sizes )