I managed to iterate through all CCSprites (tiles) in a Tiled layer. However, what I really need it is to iterate through all the properties (NSDictionaries) of all tiles within the layer. How would I do such? I don't really need to get the CCSprites, just the property list.
You need to use -(NSDictionary*)propertiesForGID:(unsigned int)GID method for CCTMXTiledMap to get the tile properties.
But first you need to know the GID of the tile. Get that from -(uint32_t) tileGIDAt:(CGPoint)pos method for CCTMXLayer:
CGPoint pos = ccp(2,1);
uint gid = [layer tileGIDAt:pos];
if (gid > 0) {
NSDictionary *tileProperty = [tiledMap propertiesForGID:gid];
// do stuff here
}
EDIT: here is how to iterate through all tiles on a CCTMXLayer:
for (NSUInteger y = 0; y < tmxLayer.layerSize.height; y++) {
for (NSUInteger x = 0; x < tmxLayer.layerSize.width; x++) {
NSUInteger pos = x + tmxLayer.layerSize.width * y;
uint32_t gid = tmxLayer.tiles[pos];
if (gid > 0) {
NSDictionary *tileProperty = [tiledMap propertiesForGID:gid];
// do stuff here
}
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With