在OpenGL ES View和UIKit View控制器之间切换

时间:2010-02-13 14:23:19

标签: iphone uikit opengl-es multiple-views

这是我的问题。

我正在使用OpenGL ES在iPhone上开发游戏。我开始使用Xcode模板OpenGL ES Application和一个EAGLView等进行开发。

我的菜单视图和游戏视图使用相同的OGL视图,但现在我想添加分数排名,因此我需要键盘和文本字段来写名称,以及一些标签或表格视图来显示排名。

更新:好吧,我认为最好的解决方案是将我当前的glView与另一个UIKit View放在一起,我将把得分排名并进行切换。

我有Apress书开始iPhone开发,我按照有关多个视图的章节进行操作。我在两个UIViewController之间切换,但是当我要在游戏中进行更改时... glView不是UIViewController,它是一个UIView,所以我迷路了。

任何人都可以帮我吗? : - (

非常感谢。

2 个答案:

答案 0 :(得分:2)

好吧,我想我解决了这个问题,所以我和你分享了解决方案。

我从书中的多个视图示例开始:三个xib(主窗口和我们切换的两个视图),app。委托,每个视图的两个视图控制器和在我们的视图之间切换的根视图控制器。

我将EAGLView类和渲染器添加到此项目中,并将EAGLView上的initWithCoder方法更改为initWithFrame:

//- (id) initWithCoder:(NSCoder*)coder
- (id)initWithFrame:(CGRect)frame
{    
    if ((self = [super initWithFrame:frame])) {
    // The same we had.

然后,在我的根视图控制器中,当我点击一个按钮时,我添加了一个IBAction:

- (IBAction)drawEAGLView:(id)sender {
    CGRect rect = [[UIScreen mainScreen] applicationFrame];
    glView = [[EAGLView alloc] initWithFrame:CGRectMake(rect.origin.x, rect.origin.y, rect.size.width, rect.size.height)];
    self.view = glView;
    [glView startAnimation];
}

就是这样。非常简单,效果很好。也许它需要一些优化,但这是一个很好的起点。

所以,我现在可以把我的分数排名:D

答案 1 :(得分:0)

您可以简单地将普通视图控制器推到OpenGL视图(控制器)之上,以显示评分排名对话框。例如presentModalViewController:animated: