这个问题我们已经有一段时间了,只是在文档或在线搜索中找不到答案。
我们的 iOS 游戏基于 OpenGL ES,我们正在实现 GameCenter 回合制游戏。以下代码显示了用于创建基于回合的匹配的匹配 UI。此代码在我的 iPad 1 和 iPad 3 上运行良好。但是,它不适用于我的 iPhone 4S!
[更新:]我们在视图层次结构的顶部使用 UIWindow,将 GL 视图/层作为子视图。当它被呈现时,这掩盖了新的观点。我现在可以通过在主窗口中添加一个 UIView 来看到这个窗口,并将 GL 视图作为它的子视图。但是,我仍然无法与此视图交互..
此代码来自我们混合 C++ 和 Objective-C 代码的 .mm 文件。
// Configure the match making view, with our own delegate
GKTurnBasedMatchmakerViewController *mmvc =
[[GKTurnBasedMatchmakerViewController alloc]
initWithMatchRequest:request];
mmvc.showExistingMatches = YES;
// Uses our own delegate.
if(!g_pTurnBasedDelegate)
{
g_pTurnBasedDelegate = [[TurnBasedDelegate alloc] init];
}
mmvc.turnBasedMatchmakerDelegate = g_pTurnBasedDelegate;
// Get the main window's root controller and instruct it to show the match making delegate.
if(g_Env && g_Env->m_pWindow)
{
RefPtr<WindowIOS> pIOSWin = ref_static_cast<WindowIOS>(g_Env->m_pWindow);
UIWindow * pUIWin = (UIWindow *)pIOSWin->GetHandle();
UIViewController * pController = [pUIWin rootViewController];
if(pController)
{
g_pRootViewController = pController;
}
}
if(g_pRootViewController)
{
[g_pRootViewController presentViewController:mmvc animated:YES completion:nil];
}