Guía iOS: Cocos2D : Framework para desarrollar vídeo juegos en 2D para el iPhone (II)
Actualizado : 21 octubre 2011 (iOS 5)
Prosiguiendo con Cocos2D el framework basado en OpenGL ES para el desarrollo de juegos en 2D para la plataforma iOS, continuaremos con la implementación de objetos y animaciones en el proyecto creado anteriormente.
Antes recordemos que la animación es un proceso para generar la sensación de movimiento de un objeto por medio de la superposición de varias imágenes. Cada una de las imágenes que conforman una animación se denomina fotograma o frame, para las animaciones en el iPhone con Cocos2D, dependiendo de los objetos creados, se establece un número predeterminado de 60 fotogramas por segundo.
Implementación de Cocos2D
Ahora vamos a proseguir con el proyecto creado en el artículo anterior. Pero antes debemos agregar esta imagen en nuestro proyecto
1. Redefinimos la clase HelloWorld de CCLayer a CCColorLayer, para modificar de manera fácil el color de fondo
#import "cocos2d.h" @interface HelloWorld : CCLayerColor { } +(id) scene; @end
2. Agregamos el objeto CCSprite a la capa HelloWorld
-(id) init{ // ccc4 Estable el color de Fondo if( (self=[super initWithColor:ccc4(255,255,255,255)] )) { CGSize winSize = [[CCDirector sharedDirector] winSize]; self.isTouchEnabled = YES; // Crea un objeto tipo CCSprite que contiene la imagen agregada CCSprite *player = [CCSprite spriteWithFile:@"giftOne.png" rect:CGRectMake(0, 0, 186, 186)]; // Establece la posición del objeto player.position = ccp(player.contentSize.width/2, winSize.height/2); // Agrega el objeto a la Capa [self addChild:player]; } return self; }
3. Compilar y ejecutar
4. Ahora agregaremos movimiento a nuestro objeto con el siguiente método
-(void)moveObject { // Acción girar id rotateAction = [CCRotateBy actionWithDuration:2 angle:180*2]; // Acción saltar id jumpAction = [CCJumpBy actionWithDuration:2 position:ccp(260,0) height:50 jumps:2]; // Agrupa 2 o más acciones id fordward = [CCSpawn actions:rotateAction, jumpAction, nil]; // Todas las acciones permiten regresar la acción con el método "reverse" id backwards = [fordward reverse]; // Permite ejecutar una acción despúes de otra id sequence = [CCSequence actions: fordward, backwards, nil]; // Repite una acción el número de veces que se requiera o // hasta el infinito y más allá con "RepearForEver" id repeat = [CCRepeat actionWithAction:sequence times:2]; // Ejecuta la acción sobre el objeto [player runAction:repeat]; }
5. Realizamos el llamado a la función definida anteriormente
// Método que implementa el evento Touch en Cocos2D - (void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { [self moveObject]; }
6. Compilar y ejecutar
Si todo ha salido bien obtendremos un objeto que gira y salta al momento de tocar la pantalla. En caso contrario aquí esta el proyecto para realizar el abracadabrante procedimiento “Build and Run”
Repositorio en GitHub : MDW-Guia-iOS14-Cocos2D2