viernes, 7 de marzo de 2014

Cocos2dx (Conceptos básicos II)

Categoría: Cocos2dx

Nivel: Básico


En el artículo anterior vimos los conceptos básicos sobre el sistema de coordenadas, anchor point, nodos y sprites. En este artículo terminare de explicar los conceptos básicos que hace falta conocer para poder desarrollar en cocos2dx.


Layers:

El elemento Layer (capa) es otro de los elementos del scene graph, de modo que al igual que los demás elementos también hereda de un nodo.

Las capas, como su propio nombre indica son áreas bidimensionales que son apiladas para formar una composición. Pueden ser de un color, un degradado o transparentes para permitir visualizar capas en niveles inferiores. En el software de dibujo profesional como Photoshop o Gimp, son muy usadas para componer una imagen.

En la siguiente imagen se puede ver una composición de capas:

Entre las propiedades de las capas, la más destacada es la posibilidad de gestionar eventos táctiles (Touch Events). Por defecto tienen un tamaño igual al usado por la vista de la librería de render (actualmente OpenGL ES) que es igual al tamaño de la ventana del dispositivo si no es modificada la resolución de diseño (usada para adaptar una pantalla a diferentes dispositivos/resoluciones).

Cabe resaltar que las capas es uno de los elementos a los que no le influye el anchor point, el anchor point por defecto está establecido en el centro (0.5, 0.5) pero es ignorado y la posición siempre será relativa a la esquina inferior izquierda.


Scene:

Las escenas (Scene) son los elementos de más alto nivel en la jerarquía del scene graph, al igual que los demás elementos, también heredan de un nodo y debe considerarse como el nodo raíz (root node), aunque no es obligatorio, es una buena práctica usar una escena como el nodo padre.

En un juego pueden existir muchas escenas, pero solo una puede estar activa al mismo tiempo formando el flujo principal de la aplicación con los menús, niveles, puntuaciones, etc. En la siguiente imagen, se puede ver un flujo básico de ejemplo con algunas escenas:

Además de las escenas básicas, existen escenas de transición (Transition Scene) para permitir realizar efectos al cambiar de una escena a otra como fade, jump, shrink, flip, etc.


Director:

El director es el equivalente al gestor de escena (SceneManager) en otros motores de juegos y es el elemento encargado de gestionar todo el scene graph. Realiza la navegación entre escenas, crea y configura el formato de pixel, buffer de profundidad, proyección, etc. de la librería de render (actualmente OpenGL ES) y se encarga de actualizar todos los nodos de la escena activa recursivamente.

Como no podía ser de otra forma, el director es un singleton ya que solo puede existir una única instancia compartida en la aplicación para gestionar todo el scene graph sin ningún tipo de incongruencia.


Aunque existen otros conceptos básicos a tener en cuenta, he intentado explicar los que me han parecido más básicos e importantes para poder seguir el curso de los artículos, donde se irán ampliando progresivamente.


¿Hay algún concepto que no acaba de quedar claro?

Saludos y… "a fluzear"

1 comentario:

  1. Estoy comenzando con el desarrollo usando esta librería y hay tan poca información en blogs, hasta que me encontré con el tuyo. Estaré pendiente de tus siguientes entradas, he aprendido mucho. Gracias...

    ResponderEliminar