Tutorial videojuegos: Scrolling y uso de HUDS

juego android the hump

La mayoría de los juegos suelen tener scroll durante su desarrollo. Esto suele ser un quebradero de cabeza para los programadores que no usan librerías de ayuda en la programación. Voy a explicar como se hace scroll en Andengine, como veréis será muy sencillo. Además explicaré qué es un HUD y para qué se usa en los juegos con scroll.

Creación de un juego con Scroll

Crear un juego con scroll es muy dependiente de la librería de programación de videojuegos que usemos. Yo voy a explicar cómo se hace en Andengine que es una librería muy útil para hacer videojuegos.

// Definimos la camara en el onCreateEngineOptions 
@Override
	public EngineOptions onCreateEngineOptions() {
		// Definimos como camara una BoundCamera, que es una camara con scroll. Siendo WIDTH y HEIGHT el tamano de la pantalla
		this.mBoundChaseCamera = new BoundCamera(0, 0, WIDTH, HEIGHT);
        final EngineOptions engineOptions = new EngineOptions(true, ScreenOrientation.LANDSCAPE_FIXED, new RatioResolutionPolicy(WIDTH, HEIGHT),mBoundChaseCamera); 		// Full screen, vertical, tamaño pantalla,camara

        // Usaremos sonido
		engineOptions.getAudioOptions().setNeedsSound(true);
    .....
    }

@Override
	public void onCreateResources(OnCreateResourcesCallback pOnCreateResourcesCallback) throws Exception {

      Sprite hero = new Sprite(.......);
      // Le tenemos que decir a la camara que es lo que tendra que seguir. en nuestro caso seguira al sprite hero.
      this.mBoundChaseCamera.setChaseEntity(hero);
}

Con esto, cuando el sprite hero se mueva por la pantalla, la cámara lo irá siguiendo y ya tendremos nuestro scroll creado.

Ahora que ya sabemos hacer scroll necesitamos saber como "evitar" el scroll en algunas cosas de la pantalla. Eso se hace con un HUD

Uso de HUD (head-up display)

Cuando estamos programando un videojuego con Scrolling enseguida nos daremos cuenta de que hay sprites y textos que nos gustaría mantener en la pantalla fijas de forma independiente al scroll del juego. Estas partes suelen ser puntuaciones o mandos de control. Para hacer esto se usan los HUD (head-up display). Si en nuestro videojuego con scroll añadimos algo al HUD, cuando la pantalla haga scroll moverá todo lo que haya en ella salvo lo que hayamos añadido al HUD.

Para crear el HUD y añadir los sprites que queramos simplemente tendremos que hacer esto:

// El HUD se debe crear en el onCreateScene
@Override
	public void onCreateScene(OnCreateSceneCallback pOnCreateSceneCallback)	throws Exception {
	super.onCreateScene(pOnCreateSceneCallback);	

    // Creamos el HUD
    HUD hud = new HUD();

    // Siendo puntuacion nuestra puntuacion lo añadimos al HUD
    puntuacion.setPosition(10,10);
    hud.attachChild(puntuacion);
......
}

Con esto nuestra puntuacion  se mantendrá en la posicion 10,10 independientemente del scroll. Sencillo, ¿no? 

En la imagen que ilustra este artículo podéis ver varios elementos que he añadido al HUD del juego TheHump, en este caso añadí al HUD el contador de vidas, la puntuacion y los controles. Si lo descargáis podéis haceros una idea real de como queda el scroll y el HUD

 

Votos totales: 15