Tutorial 9 - Creación de un juego (I)
Paso 10 de 26
Ahora que hemos probado que el trace
funciona, y que la nave no muestra el rectángulo del foco, procederemos a sustituir el trace
por las sentencias que queremos ejecutar.
Queremos evaluar qué flecha se ha pulsado, y ejecutar acciones diferentes según sea el caso de haber pulsado una flecha u otra. Para este tipo de problemas es muy útil una sentencia llamada switch
.
Para comprender esta sentencia, supongamos el caso de un test con respuestas a, b y c:
switch (answer)
{
case a :
trace("the user has chosen a");
break;
case b :
trace("the user has chosen b");
break;
case c :
trace("the user has chosen c");
break;
default :
trace("ha ocurrido un error");
}
Lo que haría en este caso la sentencia switch
es evaluar answer
(variable que está entre paréntesis).
En el caso de que la respuesta fuera por ejemplo b
, se analizarán los casos hasta encontrar uno que sea correcto (case b
),y entonces se ejecutarán la sentencias que se encuentren dentro de ese case
(en este caso un trace
que informa de que se ha respondido b), y ya no se revisarán los demás casos (break
).
Cada case
debe terminar siempre con una sentencia break
para que se omita el resto de la sentencia switch
cuando encontremos un case
correcto. Así evitamos que vaya comprobando el resto de los casos.
Si ningún case
fuera correcto, entonces se ejecutará lo que se indique en default
. Aquí las únicas respuestas posibles son a
, b
o c
, por lo que si answer
es cualquier otra cosa, hemos programado un trace
que indique que ha habido un error. Aquí no haría falta un break
.
Siempre es conveniente incluir default
, aunque no preveamos que vaya a ocurrir nada fuera de los case
.
Es importante no olvidar que esta sentencia tiene también sus propias llaves al inicio y al final.