Cocos2d iphone 扫描瓷砖贴图并检查每个瓷砖的属性

Cocos2d iphone 扫描瓷砖贴图并检查每个瓷砖的属性,cocos2d-iphone,tiles,Cocos2d Iphone,Tiles,如何迭代tilemap并检查每个tile 是否有正确的方法来执行此操作,是否有一个内置的函数来检查cocos2d中的磁贴 或者可以这样做,例如,在创建磁贴时采用设置的磁贴大小,为第一个磁贴的中间制作一个嵌套的for循环,并采用(x,y)作为第一个磁贴的中间部分,然后通过将磁贴大小添加到内部循环的x,将磁贴大小添加到外部循环的y来进行迭代 我想知道是否有一种内置的、更注重性能的方法 谢谢这是一款游戏,用于碰撞检测,还是仅仅用于基于平铺类型的渲染 你这里的问题真是模棱两可。请具体说明你想要什么。如果

如何迭代tilemap并检查每个tile

是否有正确的方法来执行此操作,是否有一个内置的函数来检查cocos2d中的磁贴

或者可以这样做,例如,在创建磁贴时采用设置的磁贴大小,为第一个磁贴的中间制作一个嵌套的for循环,并采用(x,y)作为第一个磁贴的中间部分,然后通过将磁贴大小添加到内部循环的x,将磁贴大小添加到外部循环的y来进行迭代

我想知道是否有一种内置的、更注重性能的方法


谢谢

这是一款游戏,用于碰撞检测,还是仅仅用于基于平铺类型的渲染

你这里的问题真是模棱两可。请具体说明你想要什么。如果你解释你需要什么,第三句话会更有意义

但我会试着仅根据标题来回答

  • 瓷砖有多大?如果它不是很大,蛮力可能是完美的
  • 如果性能是一个问题,或者如果瓷砖集很大,并且在任何给定时间都没有在屏幕中绘制所有瓷砖,则需要执行某种类型的场景管理
现场管理:
我认为这有一个技术术语/短语,但基本上基于tileset(即矩阵)上的一些x,y pt,您可以(通过函数)确定需要迭代的tile。弄清楚它应该很有趣,因为它大概是一个2d数组。

我认为您可以使用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]];
                 }
            }
    }
CGPoint-myPt;
NSMUTABLEARRY*tilesofGray;
对于(整数x=0;x
这是一个游戏。tileset大约为320x2040(tile大小为20x20)。因此它没有那么大。您从未回答过我关于如何迭代和获取tile属性的问题(在迭代中使用内置函数调用)我想知道是否有某种cocos2d函数来检查每个瓷砖的属性,或者我是否应该自己编写代码。Typemiss?那不是320x240吗?好吧,我想我不明白你的情况。为什么cocoa会知道你的瓷砖?我猜你说的是一些标准的与cocoa相关的“瓷砖”“这我不熟悉。你想检查所有瓷砖属性的目的是什么?我用Cocos2d标记了这个问题。