Tutorial 9 - Creación de un juego (I)

Paso 14 de 26

El valor 3 es la cantidad de píxeles que se desplaza la nave en cada ENTER_FRAME. Es, por tanto, la velocidad de la nave. En vez de escribir este valor, podríamos por tanto crear una variable llamada speed, que especifique el número de píxeles en que varía la posición de la nave en cada momento.

Podemos crear esta variable en la parte superior de la programación, tras la declaración de la variable course:

var course:String = "";
var speed:Number = 3;

Dentro de la función moveSpacecraft, sustituimos el número de píxeles por la variable speed en los cuatro case, que tomará el valor que le hemos asignado cuando creamos la variable:

case "right" :
    e.target.x += speed;
    break;

De esta forma, si cambiamos el valor de la variable speed, cambiará la velocidad de los desplazamientos en las cuatro direcciones. Podemos probar diferentes valores hasta que nos parezca una velocidad adecuada.

El siguiente paso va a ser detectar si la nave llega al planeta, que será la meta del juego. Para ello, mientras la nave se desplaza debemos ir comprobando si choca con el planeta.

Dentro de la función moveSpacecraft, por debajo de la llave de cierre de la sentencia switch, añadiremos este código:

if (e.target.hitTestObject(planet_mc)) 
{
    trace("Targed achieved. I win.");
}

Esto es un condicional que comprueba si la nave (e.target) choca (hitTestObject) con el planeta (planet_mc). Si choca, entonces se mostrará Targed achieved. I win. en el panel Salida.

Vamos a añadir otro condicional, esta vez para detectar si la nave se sale fuera de los límites del escenario, que mide 550 x 400. Por lo tanto deberemos comprobar si la propiedad x (posición horizontal) de la nave tiene un valor inferior a 0 o superior a 550, y si la propiedad y (posición vertical) tiene un valor por debajo de 0 o por encima de 400. En cualquiera de los cuatro casos, la nave estará posicionada fuera del escenario.