Objective-C从CCTMXTiledMap(Cocos2d)获取tile位置

时间:2012-04-13 18:29:24

标签: objective-c cocos2d-iphone

我正在尝试创建一个简单的循环,遍历CCTMXTiledMap中CCTMXLayer中的所有切片。我想要实现的只是打印出每一块瓷砖的位置,但对于我的生活,我无法弄清楚如何在瓷砖上循环或如何甚至可以访问它们的容器。我是一个客观的新手,所以请温柔:)

请停止!

到目前为止我所拥有的:

CGSize mapSize = [_tileMap mapSize];
CCTMXLayer *backgroundLayer = [_tileMap layerNamed:@"Background"];
int h = 0;
int w = 0;
NSInteger i = 0;
for(h = 0; h < mapSize.height; h++)
{
    for(w = 0; w < mapSize.width; w++)
    {
        i = h * mapSize.width + w;
        // I tried the following but none of it worked:
        //CCArray* tiles = [backgroundLayer  children];
        //CCSprite *tile = [backgroundLayer tileAt:tileCoord];
        //CCSprite*tile = [tiles objectAtIndex:i];
        //CCNode* tile = [backgroundLayer children getChildByTag:i];
        CGPoint position = [tile position];
        [_debugHud addTileId:i at:position];
    }
}

1 个答案:

答案 0 :(得分:1)

假设CCSprite *tile = [backgroundLayer tileAt:tileCoord];或类似内容,

tileCoord = CGPointMake(h,w);应该可以正常工作。

您确定CCTMXLayer *backgroundLayer不是nil并且是正确的图层吗?