我有我已經建在教程中使用的框架的頂部上71squared.com無法顯示的OpenGL遊戲循環遊戲中心排行榜
OpenGL的iOS應用程序的所有意見,規定,控制是國家管理在應用程序中,並且只有一個UIViewController。
基本的遊戲循環結構如下;
GameAppDelegate - 它包含UIView glView,並在applicationDidFinishLaunching中啓動它,如下所示;
[glView performSelectorOnMainThread:@selector(mainGameLoop) withObject:nil waitUntilDone:NO];
GLView包含mainGameLoop方法,並且從UIView的衍生
主遊戲循環將執行以下操作,以及創建然後釋放的自動釋放池和管理一個幀計數器;
while(true)
{
[gameController updateScene];
[self drawView];
}
gameController是一個UIViewController派生類。
drawView執行以下操作;
[EAGLContext setCurrentContext:context];
glBindFrameBufferOES(GL_FRAMEBUFFER_OES, viewFrameBuffer);
[gameController renderScene];
glBindRenderBufferOES(GL_RENDERBUFFER_OES, viewRenderBuffer);
[context presentRenderBuffer:GL_RENDERBUFFER_OES];
OKAY ...這一切都很好。
但是,我試圖顯示一個遊戲中心排行榜,它只是沒有做任何事情。我有一種感覺,我可能需要管理狀態,並在呈現排行榜時在呈現循環中做一些不同的事情。以下代碼是我的UIViewController gameController;
GKGameCenterViewController* gameCenterViewController = [[GKGameCenterViewControler alloc] init];
gameCenterController.viewState = GKGameCenterViewControllerStateLeaderboards;
[self presentViewController:gameCenterController animated:NO completion:nil];
代碼運行,但不顯示任何內容,遊戲循環只是繼續。爲什麼不?
編輯:
試圖通過二者的NSTimer和CADisplayLink沒有成功觸發主遊戲循環,presentViewController仍然沒有出現。
你的代碼中updateScene是否真的有'while(true)'?這也許就是爲什麼你看不到排行榜,因爲它需要完整的主線程。 – SAKrisT
@SAKrisT如何提出答案/替代方案?如果我知道這個問題,我爲什麼要將它發佈到StackOverflow? – AnthonyBlake
它不是一個重複的問題,因爲答案是相同的。 – AnthonyBlake