Tutorial 9 - Creació d'un joc (I)

Pas 14 de 26

El valor 3 és la quantitat de píxels que es desplaça la nau en cada ENTER_FRAME. Per tant, és la velocitat de la nau. En comptes d'escriure aquest valor, podríem crear una variable anomenada speed, que especifiqui el nombre de píxels en els quals varia la posició de la nau en cada moment.

Podem crear aquesta variable en la part superior de la programació, després de la declaració de la variable course:

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

Dins de la funció moveSpacecraft, substituïm el nombre de píxels per la variable speed en els quatre case, que prendrà el valor que li hem assignat quan creem la variable:

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

D’aquesta manera, si canviem el valor de la variable speed, canviarà la velocitat dels desplaçaments en les quatre direccions. Podem provar diferents valors fins que ens sembli una velocitat adequada.

El pas següent serà detectar si la nau arriba al planeta, que serà la meta del joc. Per a fer-ho, mentre la nau es desplaça hem d'anar comprovant si xoca amb el planeta.

Dins de la funció moveSpacecraft, per sota de la clau de tancament de la sentència switch, afegirem aquest codi:

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

És un condicional que comprova si la nau (e.target) xoca (hitTestObject) amb el planeta (planet_mc). Si xoca, llavors es mostrarà la frase Targed achieved. I win. en el panell Salida.

Afegirem un altre condicional, aquesta vegada per detectar si la nau surt fora dels límits de l'escenari, que mesura 550 x 400. Per tant, haurem de comprovar si la propietat x (posició horitzontal) de la nau té un valor inferior a 0 o superior a 550, i si la propietat y (posició vertical) té un valor per sota de 0 o per sobre de 400. En qualsevol dels quatre casos, la nau estarà posicionada fora de l'escenari.