Вы также можете пойти и импортировать с помощью доброй старой необходимости, то есть:
const _get: any = require('lodash.get');
Это единственное, что сработало для нас. Конечно, убедитесь, что вызовы require () поступают после импорта.
Можно получить лучшую производительность с потоками, попробовать что-то вроде этого:
- (void) gameLoop
{
while (running)
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
[self renderFrame];
[pool release];
}
}
- (void) startLoop
{
running = YES;
#ifdef THREADED_ANIMATION
[NSThread detachNewThreadSelector:@selector(gameLoop)
toTarget:self withObject:nil];
#else
timer = [NSTimer scheduledTimerWithTimeInterval:1.0f/60
target:self selector:@selector(renderFrame) userInfo:nil repeats:YES];
#endif
}
- (void) stopLoop
{
[timer invalidate];
running = NO;
}
В renderFrame
метод Вы готовите кадровый буфер, тянете кадр и представляете кадровый буфер на экране. (P.S. существует великое статья о различных типах игровых циклов и их за и против.)
Я не знаю о iPhone, в частности, но я могу все еще быть в состоянии помочь: Вместо того, чтобы просто включить фиксированную задержку в конце цикла, используйте следующее:
Вы могли бы хотеть иметь аварийный механизм, который сообщает, синхронизируете ли Вы, слишком трудно (я, e, если бы Ваше время сна после всей компенсации - меньше чем 0, которые означали бы, что Вы занимаете больше времени для обработки, чем частота кадров позволяет). Эффект будет состоять в том, что Ваша игра замедляется. Для дополнительных очков можно хотеть упростить рендеринг некоторое время при обнаружении этого случая пока у Вас нет достаточной резервной мощности снова.