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

Pas 23 de 26

Ara que tenim els botons creats, necessitem programar-ne el funcionament. Tornem al fotograma 1 de la capa as i premem F9 per obrir el panell Acciones.

En primer lloc, en iniciar la nostra pel·lícula volem que s'aturi al primer fotograma, motiu pel qual inclourem la instrucció stop();. Podem col·locar aquesta instrucció, per exemple, en la primera línia de la nostra programació.

Ara el moviment de la nau no s'ha de permetre directament, sinó que s’ha d’activar quan premem el botó start_btn. D'una altra banda, el botó start_btn també ens ha de portar al fotograma 2, etiquetat com game, en què no es mostra cap botó.

Per tant, afegim un listener al botó start_btn, de tal manera que executi una funció que anomenarem playGame quan hi fem clic.

start_btn.addEventListener(MouseEvent.CLICK, playGame);

Les sentències que havíem creat per seleccionar (posar el focus) i afegir els listeners a la nau han de ser ara dins de la funció playGame.

La funció playGame quedarà, per tant, de la manera següent:

function playGame(e:MouseEvent):void
{
    gotoAndStop("game");
    spacecraft_mc.focusRect = false;
    stage.focus = spacecraft_mc;
    spacecraft_mc.addEventListener(KeyboardEvent.KEY_DOWN, arrows);
    spacecraft_mc.addEventListener(Event.ENTER_FRAME, moveSpacecraft);
}

Per al botó instructions no hi ha programació, ja que la seva funció és mostrar l'ajuda quan situem el punter sobre el botó, i això ho hem aconseguit mostrant l'ajuda en l'estat Sobre del botó.

Ara canviem les sentències trace de la funció moveSpacecraft per les sentències següents, segons correspongui:

gotoAndStop("win");
gotoAndStop("lose");

Si no haguéssim posat etiquetes en els fotogrames, les instruccions serien gotoAndStop(3) en un cas i gotoAndStop(4) en l'altre cas.