Как мы можем показать UIViewController и UIView с помощью Cocos2d?

Я пытаюсь создать приложение для iPhone с помощью Cocos2d. Но я использовал четыре типа классов, таких как:

@interface MenuScene : Scene {}

@end
@interface FlipView : UIImageView
{
    CGPoint startTouchPosition;
    NSString *dirString;
    UIImageView *firstPieceView;   
    UIImageView *secondPieceView;

}
@end

@interface HelloController : UIViewController
@end


@interface MenuLayer: Layer{
        Todo *todo;
        Menu * menu;
        sqlite3 *database;
        NSMutableArray *todos;
    NSString *dirString;
    CGPoint startTouchPosition;
}
@property (nonatomic, retain) NSMutableArray *todos;
-(void) button1: (id)sender;
-(void) button2: (id)sender;
-(void) black_jack: (id)sender;
@end

но как я могу показать класс FlipView и HelloController через класс MenuLayer.


person Community    schedule 03.02.2009    source источник


Ответы (2)


Если вы спрашиваете, как прикрепить представления UIKit и тому подобное к проекту cocos2d-iphone, вам просто нужно сделать это следующим образом:

[[[Director sharedDirector] window] addSubview:myView];

Обновился до cocos 0.7 и теперь это:

[[[Director sharedDirector] openGLView] addSubview:myView];

А в Кокосах 0.99:

[[[CCDirector sharedDirector] openGLView] addSubview:myView];

А в Кокос 2.0

[[[CCDirector sharedDirector] view] addSubview:myView];
person Genericrich    schedule 10.02.2009
comment
Что мне делать, чтобы удалить myView. Когда я нажимаю кнопку в текущей сцене, я перехожу к следующей сцене. Но добавленный myView все еще появляется в этой сцене. Спасибо. - person srikanth rongali; 10.05.2010
comment
Извините, я не проверил хорошо, прежде чем спросить. Я понял. Я добавил следующий код в селектор кнопки. for (id sv in subviews) { [((UIView *)sv) removeFromSuperview]; [св релиз]; } - person srikanth rongali; 10.05.2010
comment
еще один вопрос. можно ли разбудить UIView из пера? - person heximal; 12.08.2011
comment
На данный момент для версии 2 [[[CCDirector sharedDirector] view] addSubview:myView]; - person Nik; 22.01.2013

Очень сложно ответить на этот вопрос только из кода, но я думаю, вам нужно вернуться и немного почитать о дизайне UIKit и программировании на cocos2d.

HelloController - это контроллер представления - вы не можете его "показать". Контроллер представления — это класс, который отвечает на сообщения из представления и управляет данными, которые он отображает из модели.

FlipView — это ImageView, который является подклассом UIView. Чтобы UIKit отображал это изображение, вам нужно добавить его в другое представление, используя [UIView addSubView:...]

Вот что, я думаю, вы хотите сделать:

  1. Пункт меню получает событие касания. Он сигнализирует:
  2. контроллер представления, который
  3. добавляет UIImage к основному виду

Как я уже сказал, это очень общий вопрос, и я действительно думаю, что вам следует вернуться к документации и подумать о своем дизайне. Документы Apple хороши, и сейчас на рынке есть несколько хороших книг для iPhone.

person Rog    schedule 10.02.2009