Переключение между контроллерами OpenGL ES View и UIKit View - PullRequest
2 голосов
/ 13 февраля 2010

это мой вопрос.

Я разрабатываю игру на iPhone с OpenGL ES. Я начал свою разработку с использованием шаблона Xcode OpenGL ES Application, с одним EAGLView и т. Д.

В моем представлении меню и в представлении игры используется одно и то же представление OGL, но теперь я хочу добавить рейтинг очков, поэтому мне нужны клавиатура и текстовое поле для ввода имени, а также некоторые метки или вид таблицы для отображения рейтинга.

ОБНОВЛЕНИЕ : ну, я думаю, что лучшее решение - это использовать мой текущий glView с другим UIKit View, где я поставлю рейтинг и выполню переключение.

У меня есть книга Apress Начало разработки для iPhone , и я следую главе о нескольких видах. Я предпочитаю переключаться между двумя UIViewController, но когда я собираюсь внести изменения в мою игру ... glView - это не UIViewController, это UIView, поэтому я потерян.

Может кто-нибудь помочь мне с этим? : - (

Большое спасибо.

Ответы [ 2 ]

2 голосов
/ 14 февраля 2010

Ну, я думаю, что решил проблему, поэтому я поделюсь с вами решением.

Я начал с примера с несколькими представлениями из книги: три 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 голосов
/ 13 февраля 2010

Вы можете просто нажать обычный контроллер представления поверх представления OpenGL (контроллер), чтобы показать диалоговое окно для оценки счета. Например с presentModalViewController:animated:.

...