Перебирать все свойства плитки в слое - PullRequest
3 голосов
/ 05 декабря 2011

Мне удалось перебрать все CCSprites (тайлы) в мозаичном слое. Однако, что мне действительно нужно, так это перебирать все свойства (NSDictionaries) всех плиток в слое. Как бы я это сделал? Мне не нужно получать CCSprites, просто список свойств.

1 Ответ

7 голосов
/ 06 декабря 2011

Вам нужно использовать метод -(NSDictionary*)propertiesForGID:(unsigned int)GID для CCTMXTiledMap, чтобы получить свойства плитки.

Но сначала вам нужно знать 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:

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
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...