Я работаю над приложением для рисования для 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];
}
}
}
}
Очень тяжелый ...
Мне либо нужен лучший способ рисования линий, либо я могу кэшировать чертеж как растр.
Заранее спасибо за любую помощь.