Para el desarrollo de vídeo juegos en la plataforma iOS (iPhone/iPod Touch/iPad) es importante conocer las distintas herramientas disponibles y evaluar cual de ellas se ajusta más a nuestras necesidades. Varias aplicaciones actualmente son desarrolladas utilizando uno de estos componentes: OpenGL ES y UIKit (Core Animation + Quartz 2D).

UIKit es el más sencillo de utilizar en comparación con OpenGL ES que requiere de un mayor tiempo de implementación pero ofrece el mejor rendimiento. La buena noticia es que existe un framework que simplifica esta implementación, Cocos2D.

Conociendo Cocos2D

Cocos2D es un framework para el desarrollo de juegos en 2D y aplicaciones con alto contenido interactivo. Cocos2D para iPhone es basado en Cocos2D pero implementa Objective-C como lenguaje de programación en lugar de Python. Dentro de las características principales de este framework encontramos:

  • Integración con motores de física: Box2D, Chipmunk
  • Manejo de Escenas y efectos de transiciones
  • Compatibilidad con eventos Touch y el acelerómetro
  • Texturas PVRTC de 2-bit y 4-bit, texturas RGBA de 16 bits y 32-bit
  • Basado en OpenGL ES 1.1

Dentro de Cocos2D encontramos tres conceptos principales a considerar: escenas, capas y objetos. Las escenas equivalen a los niveles o vistas implementadas en un juego . Las capas se incorporan a las escenas y pueden contener uno o más objetos: menús, botones, etiquetas, cuerpos, etc. A su vez una escena puede contener una o más capas.

Implementación de Cocos2D en una aplicación

  1. Descargar las librerías de Cocos2D para iPhone.
  2. Ejecutar el siguiente comando en la consola (dentro de la carpeta descargada): ./install_template.sh
  3. Crear un nuevo proyecto en Xcode de tipo cocos2d Application

4. Compilar y Ejecutar

La plantilla creada nos muestra los principales elementos de una aplicación:

  • CCDirector: Es el controlador principal de nuestra aplicación

    [CCDirector setDirectorType:CCDirectorTypeDefault];

  • CCScene: Implementa las escenas o vistas

    CCScene *scene = [CCScene node];

  • CCLayer: Permite la creación de capas (HelloWorld es un objeto tipo CCLayer)

HelloWorld *layer = [HelloWorld node];

  • CCLabel: Uno de los tipos de objetos que se pueden implementar dentro de una capa

    CCLabel* label = [CCLabel labelWithString:@”Hola Mundo” fontName:@”Marker Felt” fontSize:64];

En estos momentos tenemos implementadas las librerías de Cocos2D en nuestro proyecto de Xcode. Ahora podemos utilizar los diferentes componentes que nos brindan estas librerías y lograr una mejora en el desempeño de nuestras aplicaciones.  En el siguiente articulo revisaremos los conceptos básicos y la utilización de los principales métodos del framework.

No te pierdas el próximo capítulo sobre Cocos2D, framework para desarrollar vídeo juegos en 2D.

Repositorio en GitHub : MDW-Guia-iOS13-Cocos2D1