Я реализую игру, в которой пользователь может перемещаться на 2-й карте. Когда пользователь перемещается, я хочу показать ему новую часть карты (сначала карта полностью скрыта, и пользователь должен перемещаться, чтобы исследовать ее).
На данный момент я использовал CALayer, подобный этому:
- (void) updatePath:(CGPoint)point{
[self.drawingPath addLineToPoint:point];
[self setNeedsDisplay];
}
- (void) drawInContext:(CGContextRef)context{
UIGraphicsPushContext(context);
[[UIColor darkGrayColor] set];
CGContextFillRect(context, self.bounds);
CGContextSetBlendMode(context, kCGBlendModeClear);
[self.drawingPath stroke];
UIGraphicsPopContext();
}
Работает нормально, но через несколько ходов замедляет работу приложения. У DrawingPath слишком много точек, и рендеринг занимает слишком много времени.
Как сохранить предыдущее состояние и добавить в путь только новую точку?
Спасибо,