objective-c - 遍历层中的所有图 block 属性

标签 objective-c cocos2d-iphone

我设法遍历了 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/

相关文章:

ios - NSDictionary 的不区分大小写的键

ios - UICollectionView 在自定义键盘扩展中不起作用

ios - cocos2d:我的APP崩溃了,但是XCode没有给我任何崩溃报告

ios - Cocos2d。为什么异步加载纹理会保留它?

ios - NSCoding 和保存/加载默认值问题

ios - CCSprite 在边框周围有奇怪的白色像素

objective-c - 以编程方式使用 BWToolkit

objective-c - NSScrollView 搞乱了 NSGradient (损坏)

iphone - 我如何在 cocos2d iphone 中存储带有名字的前 5 名分数

iOS:检索在线的 Game Center 好友