5

He hecho un proyecto en Cocos2d 2.0 y me gustaría incorporar un menú principal usando guiones gráficos.¿Cómo incorporar guiones gráficos en un proyecto cocos2d 2.0?

He probado el tutorial de Jerrod Putnam aquí en tinytimgames.com (No puedo proporcionar el enlace porque a los nuevos usuarios solo se les permiten 2 enlaces por publicación, pero si googleas "cocos2d storyboard" es el primer enlace) pero A mi no me sirvió. Lo seguí exactamente (creo). Abrí mi proyecto cocos2d e importé los archivos de su github, CCViewController.m y .h y luego creé un nuevo archivo de guión gráfico y seguí el tutorial. Sin embargo, cuando lo ejecuté, comenzó directamente en mi juego Cocos2D y no en el nuevo menú que acabo de crear.

También probé este tutorial: http://zackworkshopios.blogspot.com/2012/06/cocos2d-with-storyboard-example.html pero una vez más no funcionó para mí, ya que no tengo (o no saben dónde encontrar/llegar) la libCocosDenshion.a archivos y libcocos2d.a.

Este es otro tutorial Traté de fidgetware: http://fidgetware.com/Tutorials/page15/page15.html hice este tutorial pero mi proyecto no tiene un archivo llamado RootViewController (.m o .h), así que no estaba seguro de dónde colocar el código que se supone ve a esos archivos.

También está el tutorial de Ray Wenderlich, pero el suyo no usa guiones gráficos.

Si alguien puede darme una solución acerca de por qué ninguno de estos me está funcionando o darme un paso a paso sobre cómo incorporar guiones gráficos en mi proyecto cocos2d 2.0, lo agradecería enormemente. También otra pregunta que tengo es si debo comenzar con un proyecto de cocos2d 2.0 e incorporar guiones gráficos o si debo comenzar con un proyecto de aplicación de vista única (¿o uno diferente?) E incorporar mi parte de cocos2d 2.0. ¡Gracias por adelantado!

Respuesta

8

Bien, logré finalmente resolverlo con mucha ayuda de Jerrod Putnam, ¡así que gracias Jerrod! En primer lugar ir a su tutorial aquí:

http://www.tinytimgames.com/2012/02/07/cocos2d-and-storyboards/

y descargar e importar los archivos desde el enlace de GitHub. A continuación, cree una subclase de CCViewController y llámela cocos2dViewController. En cocos2dViewController.h copia y pega el siguiente:

#import "CCViewController.h" 

@interface cocos2dViewController : CCViewController 

@end 

y en el cocos2dViewController.m copia y pega este (desde el tutorial de la Putnam)

#import "GamePlay.h" 
#import "cocos2dViewController.h" 

@interface cocos2dViewController() 

@end 

@implementation cocos2dViewController 

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     // Custom initialization 
    } 
    return self; 
} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    CCDirector *director = [CCDirector sharedDirector]; 

    if([director isViewLoaded] == NO) 
    { 
     // Create the OpenGL view that Cocos2D will render to. 
     CCGLView *glView = [CCGLView viewWithFrame:[[[UIApplication sharedApplication] keyWindow] bounds] 
             pixelFormat:kEAGLColorFormatRGB565 
             depthFormat:0 
           preserveBackbuffer:NO 
             sharegroup:nil 
            multiSampling:NO 
            numberOfSamples:0]; 

     // Assign the view to the director. 
     director.view = glView; 

     // Initialize other director settings. 
     [director setAnimationInterval:1.0f/60.0f]; 
     [director enableRetinaDisplay:YES]; 
    } 

    // Set the view controller as the director's delegate, so we can respond to certain events. 
    director.delegate = self; 

    // Add the director as a child view controller of this view controller. 
    [self addChildViewController:director]; 

    // Add the director's OpenGL view as a subview so we can see it. 
    [self.view addSubview:director.view]; 
    [self.view sendSubviewToBack:director.view]; 

    // Finish up our view controller containment responsibilities. 
    [director didMoveToParentViewController:self]; 

    // Run whatever scene we'd like to run here. 
    if(director.runningScene) 
     [director replaceScene:[GamePlay scene]]; 
    else 
     [director pushScene:[GamePlay scene]]; 
} 

- (void)viewDidUnload 
{ 
    [super viewDidUnload]; 
    // Release any retained subviews of the main view. 
} 

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return (interfaceOrientation == UIInterfaceOrientationPortrait); 
} 

@end 

Se dará cuenta de que importé GamePlay.h, eso es porque GamePlay.m es donde tengo todo el contenido de mi juego. Así que importa el archivo de encabezado de tu juego. También se verá que yo llamo

if(director.runningScene) 
    [director replaceScene:[GamePlay scene]]; 
else 
    [director pushScene:[GamePlay scene]]; 

Asegúrese de reemplazar "GamePlay" con el nombre de la escena que contiene su juego. Una vez hecho esto, vaya a su AppDelegate.m y reemplazar su función

application didFinishLaunchingWithOptions 

con esto:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    return YES; 
} 

Ya casi ha terminado! Ahora, para su archivo de guión gráfico, siga el tutorial de Putnam en el enlace proporcionado. Donde dice "y asigne su clase al que acabamos de crear", asígnelo a cocos2dViewController. ¡Y eso es! Ejecute el proyecto y debería funcionar, si no tiene la libertad de hacer las preguntas que tenga.

3

me vas a amar.

seguir este tutorial http://www.tinytimgames.com/2012/02/07/cocos2d-and-storyboards/

pues hay que configurar su tarjeta principal historia aquí

el truco consiste en orientar su guión gráfico principal en su iOS aplicaciones a la creada bajo par "nombre del proyecto"/veraniega/Información de implementación de iPhone/iPod. seleccionar el story board hombre hay

entonces en su AppDelegate.m eliminar el código para que se parezca a esto:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 


return YES; 
} 

si no venir a la derecha le daré mi código fuente de trabajo, me acaba de dejar saber

+0

Se puede publicar un enlace de descarga del proyecto de trabajo por favor? –

+0

@OscarApeland lo siento mucho, nunca te respondí. Desafortunadamente, ya no tengo ese proyecto y apenas puedo recordar nada de lo que hice en aquel entonces (trabajando en unidad ahora). por favor acepta mi disculpa. –

0

Gracias a bagelboy, que tienen un solo cambio:

// Create the OpenGL view that Cocos2D will render to. 
    CCGLView *glView = [CCGLView viewWithFrame:self.view.frame 
            pixelFormat:kEAGLColorFormatRGB565 
            depthFormat:0 
          preserveBackbuffer:NO 
            sharegroup:nil 
           multiSampling:NO 
           numberOfSamples:0]; 

Para mi ejemplo, [[[UIApplication sharedApplication] keyWindow] bounds] no funcionó, y lo utilizan self.view.frame

Cuestiones relacionadas