У меня есть поставляемая игра OpenGL, в которую я добавляю поддержку Game Center для версии 1.1. Игра не использует UIViewController и закодирована в AppDelegate следующим образом:
-(void)applicationDidFinishLaunching:(UIApplication *)application
{
window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
[window setUserInteractionEnabled:YES];
[window setMultipleTouchEnabled:YES];
glView = [[EAGLView alloc] initWithFrame:[UIScreen mainScreen].bounds];
[window addSubview:glView];
[window makeKeyAndVisible];
[glView performSelectorOnMainThread:@selector(mainGameLoop) withObject:nil waitUntilDone:NO];
}
Все отлично работает, но когда Game Center вызывает окно (например, GKAchievementViewController), окно анимируется на экране нормально, но когда я нажимаю, чтобы прокрутить его, оно не имеет никакого импульса или возврата нормальные окна. Когда я прокручиваю окно мимо верха и низа, оно не возвращается с отскоком назад.
Окно полностью функционально, регистрирует прикосновения, оно просто ведет себя некрасиво.
Я предполагаю, что это потому, что некоторая информация просто не отправляется по каналу правильно, потому что у меня нет UIViewController? Я попытался создать UIViewController, который находится между UIWindow и OpenGL UIView, но у меня такое же поведение.
Вот как я создаю диалог GKAchievementViewController:
-(void)displayAchievements
{
achievmentsViewController = [[UIViewController alloc] init];
[glView addSubview:achievmentsViewController.view];
GKAchievementViewController *achievements = [[GKAchievementViewController alloc] init];
if (achievements != nil)
{
achievements.achievementDelegate = self;
[achievmentsViewController presentModalViewController:achievements animated:YES];
}
[achievements release];
}
Я не использую ни одного UIKit в игре, все кнопки и т. Д. Сделаны с помощью открытого OpenGL. Я также не использую cocos2d или другие фреймворки.
В моем основном цикле я делаю это:
while(CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0.002, TRUE) == kCFRunLoopRunHandledSource);
Кроме этого, я не делаю регулярных звонков в ОС.
Кто-нибудь знает, что происходит? Моя игра готова к отправке, кроме этой проблемы, и она сводит меня с ума.