如何迭代tilemap并检查每个tile?
有没有正确的方法,cocos2d中是否有内置函数来检查磁贴?
或者可以这样做,例如在创建图块时设置图块大小,创建一个嵌套的for循环并将(x,y)作为第一个图块的中间部分,然后通过将tileize添加到内部循环上的x并将其tileize到外部的y来迭代循环?
我想知道是否有内置的,更具有性能意识的方法。
由于
答案 0 :(得分:1)
我认为你可以使用for循环和CGPoints来做到这一点。 我要举例来说明白了 并将其存储在一个数组中我猜
CGPoint myPt;
NSMutableArray *tilesofGray;
for (int x = 0; x < tilemapLength)
{
for (int y = 0; y < tilemapHeight)
{
myPt.x = x;
myPt.y = y;
if([[[tilemap layerNamed:@"background"] tileAt:myPt] getColor] == Grey)
{
[tilesofGray addObject:[[tilemap layerNamed:@"background] tileAt:myPt]];
}
}
}
答案 1 :(得分:-2)
这适用于游戏,类似碰撞检测,还是仅仅基于图块类型进行渲染?
你的问题真的很模糊。请具体说明你想要的。如果你解释一下你需要什么,第三句话会更有意义。
但我会尝试单独根据标题回答......
场景管理: 我认为有一个技术术语/短语,但基本上是基于tileset(即矩阵)上的一些x,y pt,你可以确定(通过一个函数)你将需要迭代哪些tile。弄清楚它应该很有趣,因为它可能是一个二维阵列。