我是iPhone編程新手,事實上,任何類型的編程。近一年來,我一直在教自己C,然後是Objective-C,在過去的幾個月中,我一直在製作一款iPhone遊戲,到目前爲止我對此感到非常自豪。從OpenGL視圖加載UIView
無論如何,我已經打了一個絆腳石,我一直試圖弄清楚一段時間,不能,如果有人能指出我正確的方向,我會非常感激。
基本上,當應用程序啓動時,它加載到UIView,這就像一個菜單系統,有「加載遊戲」,「查看高分等」選項......當「加載遊戲」被按下,一個OpenGL視圖被創建並且我的遊戲開始播放。當遊戲中的宇宙飛船撞向一顆行星時,遊戲意味着結束,另一個UIView交換顯示高分,並提示重試。我一直試圖讓這個UIView交換一段時間,但它似乎不工作。代碼全部編譯正確,沒有錯誤或警告,但是當飛船墜入行星時,什麼都不會發生。 OpenGL視圖保持爲主視圖,並且不會加載其他視圖。
這裏是我的RootViewController的類的代碼,drawEAGLView是當「加載遊戲」按下調用,當飛船墜毀NEWPAGE被稱爲:
- (IBAction)drawEAGLView:(id)sender { //This code is called when "Load Game" is pressed in the first UIView.
//This function contains the loading code of the OpenGl view, and seems to work well.
BBSceneController * sceneController = [BBSceneController sharedSceneController];
// make a new input view controller, and save it as an instance variable
BBInputViewController * anInputController = [[BBInputViewController alloc] initWithNibName:nil bundle:nil];
sceneController.inputController = anInputController;
[anInputController release];
// init our main EAGLView with the same bounds as the window
EAGLView * glView = [[EAGLView alloc] initWithFrame:window.bounds];
sceneController.inputController.view = glView;
sceneController.openGLView = glView;
self.view = glView;
[glView release];
glView.alpha = 0.0;
[UIView beginAnimations:@"fadeout" context:nil];
[UIView setAnimationDuration:0.5f];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDelegate:self];
// Change any animatable properties here
glView.alpha = 1.0;
[UIView commitAnimations];
// set our view as the first window view
[window addSubview:sceneController.inputController.view];
[window makeKeyAndVisible];
// begin the game.
[sceneController loadScene];
[sceneController startScene];
}
- (void)newPage //This code is run when the spaceship crashes into the planet.
{
NSLog(@"ViewTwoLoaded"); //This is logged in the console, which proves the code is being run.
if(self.viewTwoController == nil)
{
ViewTwoController *viewTwo = [[ViewTwoController alloc]
initWithNibName:@"View2" bundle:[NSBundle mainBundle]]; //View2 is the nib i want to load, but does not load.
self.viewTwoController = viewTwo;
[viewTwo release];
}
[self.navigationController pushViewController:self.viewTwoController animated:YES];
}
我試着用搜索引擎和論壇搜索它很長一段時間,但(可能是因爲我不知道確切的使用條款),我找不到任何東西!
我儘量提供儘可能多的信息,任何幫助將非常感謝!
由於提前, 克雷格