2010-02-13 87 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

相關問題