VISITAS:

martes, 15 de enero de 2013

Conceptos en AndEngine

BaseGameActivity

Es una clase derivada de la Activity de Android y que tiene un engine. Es la vista donde se va a dibujar el juego.

LayoutGameActivity

Es otra clase derivada de la Activity de Android. Se utiliza para definir layouts con objetos de IU tales como botones, textfields, etc. Recordemos que un juego puede tener también otras pantallas además de la pantalla propia del juego. También se utiliza esta clase para insertar anuncios de Google.

Engine

El engine es el motor que hace que el juego se ejecute en pequeños pasos (en el tiempo). Se encarga de ir dibujando en pantalla (según los fps) y de actualizar los objetos de la escena

ResolutionPolicy

Es un parámetro del engine. Le indica a AndEngine cómo debe tratar con diferentes tamaños y resoluciones de pantallas. Por ejemplo, RatioResolutionPolicy maximizará el tamaño a lo máximo que permita la pantalla, manteniendo una relación de aspecto concreta. FillResolutionPolicy ocupará toda la pantalla, pero puede distorsionar, ya que no mantendrá la relación de aspecto. Gracias al ResolutionPolicy el programador se olvida de la resolución del terminal. Se hace el programa para una resolución concreta y AndEngine se encarga de dibujar en la resolución del terminal.

Camera

Define el rectángulo de la escena que se dibuja en la pantalla, que no tiene por qué ser la escena completa. Lo normal es tener una Camera por cada Scene. Existen objetos derivados de Camera que permiten hacer zoom y moverse suavemente.

Scene

Es el contenedor de todos los objetos que se dibujan en la pantalla. Una Scene puede tener capas, las cuales pueden contener entidades (estáticas o dinámicas).

Entity

Es un objeto que puede dibujarse, como por ejemplo, sprites, rectángulos, texto, líneas, etc. Una Entity tiene una posición, una rotación, escala, color, etc.

Texture

Una textura es como un canvas gigante donde se pueden situar imágenes más pequeñas, llamadas TextureRegion (en versiones anteriores de AndEngine, el ancho y alto de una textura tenía que ser potencia de 2, pero esa limitación ya no existe). Se pueden situar TextureRegions en cualquier lugar de la textura y extraerlas después a partir de cualquier posición.
En teoría se pueden poner TextureRegions una junto a otra, aprovechando así el espacio al máximo. Sin embargo se recomienda dejar un pixel vacío entre TextureRegions porque en algunos casos se aprecian bordes raros en las imágenes.

TextureRegion

Define un rectángulo en una textura. Los objetos TextureRegion se utilizan en los sprites para manejar imágenes que contienen otras imágenes más pequeñas y que se visualiza una única de ellas en un momento determinado.

Cuestiones importantes

¿Por qué utilizar Textures y TextureRegions? Sería mucho más sencillo tener cada bitmap por separado. La respuesta es por un tema de rendimiento. OpenGL sólo puede tener una textura cargada en memoria en cada momento. Así, si ponemos las imágenes en distintas texturas, OpenGL tendrá que descargar y cargar continuamente de memoria. Sin embargo, teniendo todas las imágenes en una textura, OpenGL sólo tiene que visualizar una parte de esa textura, pero sin cargar otra.
¿Qué tamaña de textura es el máximo? OpenGL soporta texturas de hasta 2048 x 2048. Sin embargo, en algunos terminales, el límite está en 1024 x 1024, así que no se recomienda superar este último tamaño.

No hay comentarios:

Publicar un comentario