Сканирование по карте тайлов и проверка свойств для каждой тайла - PullRequest
0 голосов
/ 04 февраля 2011

Как пройти по карте тайлов и проверить каждую плитку?

Есть ли правильный способ сделать это, есть ли в cocos2d встроенная функция для проверки плитки?

Или это можно сделать, например, взять размер мозаики, установленный при создании плитки, сделать вложенный цикл for и взять (x, y) для середины первой плитки и просто выполнить итерацию, добавив мозаичный размер к x во внутреннем цикле и мозаичный размерк y во внешнем цикле?

Мне интересно, есть ли встроенный, более ориентированный на производительность подход.

Спасибо

Ответы [ 2 ]

1 голос
/ 18 мая 2011

Я думаю, вы могли бы сделать это, используя цикл 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]];
                 }
            }
    }
0 голосов
/ 04 февраля 2011

Это для игры, для обнаружения столкновений или просто для рендеринга в зависимости от типа плитки?

Ваш вопрос здесь действительно неоднозначный.Пожалуйста, будьте конкретны в том, что вы хотите.В частности, третье предложение будет иметь больше смысла, если вы объясните, что вам нужно.

Но я постараюсь ответить, основываясь только на названии ....

  • Насколько великтакое тайлсет?если он не очень большой, грубая сила может быть вполне подходящей.
  • Если производительность является проблемой / проблемой, или если набор плиток большой, и не все плитки когда-либо рисуются на экране в любой момент времени, вынужно сделать какое-то управление сценами.

управление сценами: я думаю, что для этого есть технический термин / фраза, но в основном он основан на некотором x, y pt на наборе плиток (то есть матрице),вы можете определить (с помощью функции), какие плитки вам нужно будет выполнить.это должно быть забавно, так как это, предположительно, двумерный массив.

...