我正在尝试创建一个简单的循环,遍历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];
}
}
答案 0 :(得分:1)
CCSprite *tile = [backgroundLayer tileAt:tileCoord];
或类似内容, tileCoord = CGPointMake(h,w);
应该可以正常工作。
您确定CCTMXLayer *backgroundLayer
不是nil
并且是正确的图层吗?