2010-02-13 88 views
2

这是我的问题。在OpenGL ES View和UIKit View控制器之间切换

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

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

UPDATE:好的,我认为最好的解决方案是将我当前的glView与另一个UIKit视图放在一起,我将把分数排序并进行切换。

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

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

非常感谢你。

回答

2

我认为我解决了这个问题,所以我与你分享解决方案。

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

我增加了EAGLView类和渲染器对这个项目,改变了的initWithCoder方法上EAGLView到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

+0

请注意,您每次调用glEView时都会泄漏glView。在将其分配给self.view后,您需要释放它。 – 2010-02-15 13:44:00

+0

我不确定我是否理解您使用glView完成的任务。你正在为一个UIViewController对象分配一个UIView指针,其中包括:glView = [[EAGLView alloc] initWithFrame:CGRectMake(rect.origin.x,rect.origin.y,rect.size.width,rect.size.height) ];' – ray 2011-11-25 05:57:18

0

你可以简单地推动了OpenGL视图(控制器),以示对得分排名对话框顶部的正常视图 - 控制。例如与presentModalViewController:animated:

+0

我做了一个更新,我有一个新的问题。我认为你所说的是我正在寻找的东西,但是,你能解释一下吗?谢谢。 – emenegro 2010-02-13 18:25:12

相关问题