开发者

Switch between OpenGL ES View and UIKit View controllers

this is my question.

I'm developing a game on iPhone with OpenGL ES. I began my development using the Xcode template OpenGL ES Application, with one EAGLView, etc.

My menu view and game view use the same OGL view but now I want to add score ranking so I need a keyboard and a text field to write name, a开发者_Go百科nd some labels or a table view to show ranking.

UPDATE: well, I think that the best solution is to have my current glView with another UIKit View where I will put the score ranking and do the switching.

I have the Apress book Beginning iPhone Development and I follow the chapter about multiple views. I take the point of switching between two UIViewController but when I'm going to make changes in my game... glView is not a UIViewController, it's a UIView, so I'm lost.

Can anyone help me with this? :-(

Thank you very much.


Well, I think I solved the problem, so I share the solution with you.

I started from the multiple views example from the book: three xib (main window and two views we switch), the app. delegate, two view controller for each view and a root view controller which switch between our views.

I added the EAGLView class and renderer to this project and changed the initWithCoder method on EAGLView to initWithFrame:

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

Then, in my root view controller I have added an IBAction when I tap a button:

- (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];
}

And that's all. Very simple and it works well. Maybe it needs some optimization but this is a good start point.

So, I can make now my score ranking :D


You can simply push a normal viewcontroller on top of the OpenGL view(controller) to show a dialog for the score ranking. For example with presentModalViewController:animated:.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜