Похоже, вы пытаетесь работать со спрайтами или генерированием частиц? Не зная подробностей, я могу дать общий ответ, но дайте ему шанс. Предположим, что все точки - это простые 1-пиксельные цветные штучки. Никаких градиентов или путей не требуется, просто «установите пиксель в x, y в красный/зеленый/синий».
Вы должны иметь возможность легко манипулировать 4000 CALayer
объектов одновременно:
CALayer *rootLayer = [[self view] layer]; // assumes self is a view controller
NSMutableArray *mSprites = [NSMutableArray array]; // to store references to the layers
for (int i = 0; i < 4000; i++) {
CALayer *layer = [CALayer layer];
NSAssert1(layer != nil, @"failed to create CALayer #%i", i);
layer.backgroundColor = [UIColor colorWithRed:... green:... blue:... alpha:1.0].CGColor;
layer.frame = CGRectMake(rand(), rand(), 1.0, 1.0);
[mSprites addObject:layer];
[rootLayer addSublayer:layer];
}
self.my4000SpritesProperty = mSprites;
Тогда, когда пришло время, чтобы управлять ими, перейдите в массив в self.my4000SpritesProperty
и изменить кадры слоев или другие свойства.
Для 4000 элементов вы должны увидеть приемлемую производительность с помощью Core Animation.
Что вы хотите сделать с этим? Будут ли очки менять или это одноразовый розыгрыш? –
Сначала я хочу начать рисовать один раз. позже я хочу, чтобы пальцы касались, чтобы привлечь точки силой, изменив их положение (и перерисовывая). – headkit
Вы намерены перерисовать его, когда пользователь перемещает палец или после того, как палец поднят? –