miércoles, 2 de mayo de 2012

LibGDX: comenzando desde cero los videojuegos


Una de las cosas que hizo que decida utilizar Libgdx para mi primer juego 2d Android es el modulo scene2d. Este modulo consiste en una serie de clases que facilitan muchisimo tareas como mostrar imagenes en pantalla, moverlas, rotarlas, animarlas, etc… es decir, casi todo lo que necesitamos a la hora de programar un juego sencillo.
Básicamente la idea de Scene2d es un escenario al que le podemos agregar actores. Estos actores pueden ser por ejemplo imagenes y tienen propiedades como x e y que indican en que parte del escenario están ubicados. Modificando estas propiedades podemos hacer que los actores cambien de posición o se vayan moviendo. En definitiva, la idea de los actores es igual a los Movieclips de Actionscript.
A continuación les voy a mostrar con un ejemplo y sencillos pasos como empezar con scene2d.

Crear el escenario

Para comenzar declaramos nuestro escenario con sus medidas
stage = new Stage(320, 480, true);

Agregar un actor

Creamos un actor de tipo Imagen, lo posicionamos y finalmente lo agregamos al escenario.
TextureRegion texture = new TextureRegion(new Texture(
             Gdx.files.internal("data/jugador.png")), 0, 0, 40, 40);
 
image = new Image("TestImage", texture);
image.x = 0;
image.y = 0;
 
stage.addActor(image);

Renderizar el escenario con los actores

Por ultimo, en nuestro metodo render lo unico que hacemos es limpiar la pantalla y llamar al metodo act de nuestro stage para que éste se ocupe de mostrar el/los actores en pantalla
@Override
public void render() {
 Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
 stage.act(Gdx.graphics.getDeltaTime());
 stage.draw();
}

Agregando un poco de movimiento

Si queremos hacer que la imagen se mueva nada mas tenemos que modificar sus coordenadas y el stage se ocupara de mostrarla en su nuevo lugar.
@Override
public void render() {
 Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
 
 image.y += 100 * Gdx.graphics.getDeltaTime();
 
 stage.act(Gdx.graphics.getDeltaTime());
 stage.draw();
}
Así de facil. El ejemplo es muy básico pero muestra lo sencillo que es todo con scene2d. En un próximo articulo ampliaré un poco mas el tema con una clase derivada de Image, drag & drop y alguna que otra cosita mas.
Codigo fuente y proyectos para probar: Descargar.
Para aquellos que nunca hayan probado Libgdx les recomiendo que hagan el tutorial deHelloWorld, les va a ayudar a entender este tutorial. Otra opcion es este video tutorial.

No hay comentarios:

Publicar un comentario