2009-02-03 8 views
7

estoy tratando de construir una aplicación para el iPhone mediante el uso de Cocos2d.But he utilizado cuatro tipos de clases como bellow-¿Cómo podemos mostrar UIViewController y UIView utilizando 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 

pero cómo puedo mostrar FlipView y la clase HelloController través de la clase MenuLayer.

Respuesta

2

Es muy difícil responder a esta pregunta simplemente desde el código, pero creo que debe volver 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. Tener UIKit hacer que esta imagen, es necesario añadirlo a otra vista utilizando [UIView addSubView:...]

Esto es lo que creo que quiere hacer:

  1. El elemento de menú recibe un evento de toque. Señala que:
  2. el controlador de vista que
  3. añade el UIImage a la vista principal

Como he dicho, sin embargo, esta es una pregunta muy general y realmente creo que debería volver a la documentación y piensa en tu diseño. Los documentos de Apple son buenos y ahora hay algunos buenos libros de iPhone en el mercado.

20

Si se está preguntando cómo adjuntar vistas UIKit y como a un proyecto cocos2d-iPhone, sólo hay que hacerlo como:

[[[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]; 
+0

Qué debo hacer para eliminar myView. Cuando presiono un botón en la escena actual, me muevo a la siguiente escena. Pero, el myView agregado todavía está apareciendo en esa escena también. Gracias. –

+0

Perdón, no revisé bien antes de preguntar. Entiendo. Agregué el siguiente código en el selector para el botón. for (id sv en las subvistas) \t { \t [((UIView *) sv) removeFromSuperview]; \t [sv release]; \t} –

+0

una pregunta más. ¿Es posible despertar a UIView de la punta? – heximal

Cuestiones relacionadas