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

Paso 23 de 26

Ahora que tenemos los botones creados, necesitamos programar su funcionamiento. Volvemos al fotograma 1 de la capa as y pulsamos F9 para abrir el panel Acciones.

En primer lugar, al iniciar nuestra película queremos que se detenga en el primer fotograma, por lo que incluiremos la instrucción stop();. Podemos colocar esta instrucción por ejemplo en la primera línea de nuestra programación.

El movimiento de la nave ahora no debe permitirse directamente, sino que debe ser activado cuando pulsemos el botón start_btn. Por otro lado, el botón start_btn también debe llevarnos al fotograma 2, etiquetado como game, en el que no se muestra ningún botón.

Añadimos por tanto un listener al botón start_btn, de tal forma que ejecute una función a la que llamaremos playGame cuando hagamos clic sobre él.

start_btn.addEventListener(MouseEvent.CLICK, playGame);

Las sentencias que habíamos creado para seleccionar (poner el foco) y añadir los listeners a la nave deben estar ahora dentro de la función playGame.

La función playGame quedará por tanto de la siguiente manera:

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);
}

Para el botón instructions no hay programación, ya que su función es mostrar la ayuda cuando situamos el puntero sobre el botón, y eso lo hemos conseguido mostrando la ayuda en el estado Sobre del botón.

Cambiamos ahora las sentencias trace de la función moveSpacecraft por las sentencias siguientes, segun corresponda:

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

Si no hubiéramos puesto etiquetas en los fotogramas, las instrucciones serían gotoAndStop(3) en un caso y gotoAndStop(4) en el otro caso.