Creando videojuegos con Cocos2d-x

Como intern en Nearsoft, he tenido hasta ahora dos de los meses más pesados en mi vida, pero a su vez con más aprendizaje. Se nos han puesto muchísimas tareas, desde ver horas de videos y a partir de ellos realizar ensayos, hasta desarrollar algo desde cero.

En este mes, se nos dio la tarea de hacer contribuciones a proyectos open source; en mi caso elegí Fresco (librería para gestionar carga de imágenes en Android), Arduino y Cocos2d-x.

En este artículo les hablaré un poco de Cocos2d-x y cómo utilizarlo.

¿Que es Cocos2d-x?

Cocos2d-x es un framework para el desarrollo de videojuegos multiplataforma. Permite el uso de lenguajes como: JavaScript, C++ y Lua.

En Cocos2d-x podemos desarrollar videojuegos para las siguientes plataformas:

  • Windows
  • MacOS
  • Android
  • iOS
  • Tizen
  • Linux

Pequeño ejemplo de como usar Cocos2d-x

Requerimientos:

  • Mac OS X 10.7+, Xcode 5.1+
  • ó Ubuntu 12.10+, CMake 2.6+
  • ó Windows 7+, VS 2012+
  • Python 2.7.5+
  • NDK r9d es requerido para construir juegos para Android

Paso 1: Descargarlo.

Podemos descargar Cocos2d-x desde su pagina oficial en este enlace: http://www.cocos2d-x.org/download

Paso 2: Setting up.

Hay que descomprimir el archivo “.zip” y desde él, terminar de ejecutar el archivo “setup.py”. Este script nos solicitará las rutas de herramientas para Android (SDK, Ant y NDK r9d); si las dejamos en blanco no pasa nada, aún así podremos correr nuestro videojuego en las demás plataformas.

Una vez realizado esto, podemos crear un nuevo proyecto con el comando:

cocos new [nombre_del_proyecto] -l [lenguaje]

Ejemplo para C++:

cocos new NuevoProyecto -l cpp

Paso 3: Hola mundo.

Si corremos el comando:

cocos run -p mac

Podemos probar nuestra nueva aplicación, que se verá de esta manera:

Ahora podremos correr algunas acciones sobre el sprite que se muestra. Nos vamos al archivo Classes/HelloWorldScene.cpp y modificamos la función HelloWorld::init() al final, podemos crear un action como:

RotateBy* rotar = RotateBy::create(1.f, 1.f);

En el cual el primer parámetro es el tiempo que queremos que dure nuestro action y el segundo parámetro, el ángulo que queremos que rote; en este caso, durará un segundo y dará una vuelta entera.

Para hacer que nuestro sprite corra esta acción, podemos hacerlo de la siguiente manera:

sprite->runAction(rotar);

Cocos2d-x cuenta con un gran arsenal de actions, ya que se basa en ellos. A continuación listaré los que a mi parecer son los más importantes:

  • MoveBy
  • MoveTo
  • RotateBy
  • RotateTo
  • JumpBy
  • JumpTo
  • TintBy
  • TintTo
  • Sequence
  • Spawn
  • CallFunc
  • ScaleTo

Podemos ver la lista completa en: Cocos2d-x docs.

Conclusiones.

Cocos2d-x es un framework muy fácil de utilizar y además tiene un gran potencial, ya que cuenta con actions para un montón de cosas, así como clases que nos facilitan el uso del touch, giroscopio, joysticks y muchísimo hardware. En mi opinión es un motor para videojuegos muy fuerte, no solo por lo mencionado anteriormente, sino también por ser open source.

Si tienes alguna duda puedes contactarme: nflores@nearsoft.com

Noé Flores, Academy Intern @Nearsoft