¿Qué hará esta versión?

Veamos cómo hacerlo...

Gravedad (caer al final de una plataforma)

No son grandes cambios: por una parte, después de cada movimiento, dejaremos "marcado" que ahora se deberá comprobar si hay que caer:

public void MoverDerecha() 
{
    if (saltando || cayendo) return; // No debe moverse mientras salta
 
    if (miPartida.GetMapa().EsPosibleMover(x + incrX, y + alto - 4, 
              x + ancho + incrX, y + alto))
          x += incrX;
 
    cayendo = true;
}
 

y la rutina de "Mover" el personaje, si tiene marcado que quizá haya que caer, deberá comprobar si hay hueco debajo, y moverlo en ese caso:

// Para cuando deba moverse solo, p.ej. saltando
public new void Mover()
{
    if (saltando)
    {
        [...]
    }
    else if (cayendo)
    {
        if (miPartida.GetMapa().EsPosibleMover(
            x, y + incrY + alto - 4,
           x + ancho, y + incrY + alto))
        {
            y += incrY;
        }
        else
            cayendo = false;
    }
}
 

Mejoras gráficas

Ya que estamos, vamos a usar un nuevo juego de imágenes, partiendo de las que en su día creó Andy Noble. Las originales seguirán estando disponibles, pero en una carpeta llamada "originales", para que más adelante se pueda optar entre jugar con la apariencia clásica o la mejorada.

Ahora el juego se vería así:

Apariencia del juego, versión 0.08

Cambios menores en Mapa y Partida

Ahora en el mapa deberemos hacer algún "agujero", porque si no nuestro personaje ya no podrá bajar desde las zonas más altas cuando están completamente cerradas (el juego original tenía zonas que se hundían, pero nuestra versión todavía no las tiene).

Y en Partida podemos eliminar ya las opciones de mover hacia arriba y hacia abajo, que no existían en el juego original, y que nos eran cómodas para hacer pruebas preliminares, pero que ahora ya no son (casi) necesarias.


Puedes descargar la versión 0.08 completa en la página del proyecto en Google Code.

Siguiente entrega...