Я делаю игру, которая требует, чтобы на экране было нарисовано несколько изображений.Код, который я использую для этого:
- (void)drawRect:(CGRect)rect {
for (i=1;i<=totalImages;i++) {
if (imageExists[i]) {
[image drawAtPoint:CGPointmake(imageX[i],imageY[i])];
}
}
}
Этот drawRect вызывается функцией:
-(void) gameLoop {
[self setNeedsDisplay];
}
И таймер геймплея вызывается 60 таймерами в секунду:
[NSTimer scheduledTimerWithTimerInterval:0.01666 target:self selector:@selector(gameLoop) userInfo:nil repeats:YES];
imageExists [], imageX [] и imageY [] - это массивы, которые я использую в своем игровом коде для создания / удаления и перемещения изображений по экрану.
Моя проблема в том, что когда у меня около 40 изображений, движущихся вокруг скорости кадров, почти вдвое меньше, чем когда было только 1 изображение.И моя игра потребует максимум 88 изображений.(это происходит только тогда, когда я тестирую его на своем iPod Touch, в симуляторе все работает нормально ...)
Мой вопрос: почему медленная функция drawrect или drawAtPoint?И как я могу это исправить?Должен ли я на самом деле использовать это для рисования изображений, или я должен изучить OpenGL ES для создания игр?