iphone - cocos2d - cocos game creator
¿Cómo podemos mostrar UIViewController y UIView usando Cocos2d? (2)
Intento crear una aplicación para iPhone utilizando Cocos2d. Pero he usado cuatro tipos de clases, como por ejemplo:
@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
pero ¿cómo puedo mostrar la clase FlipView y HelloController a través de la clase MenuLayer?
Es muy difícil responder a esta pregunta solo desde el código, pero creo que debes volver atrás y leer un poco sobre el diseño de UIKit y la programación de cocos2d.
HelloController es un controlador de vista; no puede ''mostrarlo''. Un controlador de vista es una clase que responde a los mensajes de una vista y controla los datos que muestra desde el modelo.
FlipView es un ImageView que es una subclase de UIView. Para que UIKit represente esta imagen, debe agregarla a otra vista usando [UIView addSubView:...]
Esto es lo que creo que quieres hacer:
- El elemento del menú recibe un evento táctil. Señala a:
- el controlador de vista que
- agrega el UIImage a la vista principal
Sin embargo, como dije, esta es una pregunta muy general y realmente creo que debería volver a la documentación y pensar en su diseño. Los documentos de Apple son buenos y ahora hay algunos buenos libros de iPhone en el mercado.
Si está preguntando cómo adjuntar vistas de UIKit y tal a un proyecto de cocos2d-iphone, solo tiene que hacerlo como sigue:
[[[Director sharedDirector] window] addSubview:myView];
Actualizado a cocos 0.7 y ahora esto es:
[[[Director sharedDirector] openGLView] addSubview:myView];
Y en Cocos 0.99:
[[[CCDirector sharedDirector] openGLView] addSubview:myView];
Y en Cocos 2.0
[[[CCDirector sharedDirector] view] addSubview:myView];