我设法遍历了 Tiled 层中的所有 CCSprite(图 block )。然而,我真正需要的是遍历图层中所有图 block 的所有属性 (NSDictionaries)。我该怎么做?我真的不需要获取 CCSprite,只需要属性列表。
最佳答案
您需要使用 -(NSDictionary*)propertiesForGID:(unsigned int)GID
方法为 CCTMXTiledMap
获取图 block 属性。
但首先您需要知道磁贴的 GID。从 -(uint32_t) tileGIDAt:(CGPoint)pos
方法获取 CCTMXLayer
:
CGPoint pos = ccp(2,1);
uint gid = [layer tileGIDAt:pos];
if (gid > 0) {
NSDictionary *tileProperty = [tiledMap propertiesForGID:gid];
// do stuff here
}
编辑:这里是如何遍历 CCTMXLayer
上的所有图 block :
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
}
}
}
关于objective-c - 遍历层中的所有图 block 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8379381/