Рендеринг нарисованных линий как узлов в Cocos - PullRequest
0 голосов
/ 14 июня 2011

Я работаю над приложением для рисования для iPad с использованием Cocos-iOS, и у меня возникают проблемы с производительностью при рисовании линий типа CCNode. Я понимаю, что использование draw в узле приводит к тому, что он вызывается каждый раз, когда холст перерисовывается, и текущий код очень тяжел, если используется каждый раз:

for (LineNodePoint *point in self.points) {
    start = end;
    end = point;
    if (start && end) {
        float distance = ccpDistance(start.point, end.point);
        if (distance > 1) {
            int d = (int)distance;
            float difx = end.point.x - start.point.x;
            float dify = end.point.y - start.point.y;
            for (int i = 0; i < d; i++) {
                float delta = i / distance;

                [[self.brush sprite] setPosition:ccp(start.point.x + (difx * delta), start.point.y + (dify * delta))];
                [[self.brush sprite] visit];
            }
        }
    }
}

Очень тяжелый ...

Мне либо нужен лучший способ рисования линий, либо я могу кэшировать чертеж как растр.

Заранее спасибо за любую помощь.

1 Ответ

0 голосов
/ 15 июня 2011

Как насчет ccDrawLine или CCMutableTexture? CCMutableTexture для манипулирования пикселями, используя CCRenderTexture внутри, как вы сказали.

...