Tutorial 10 - Creació d'un joc (II)
Pas 10 de 22
Al començament de la funció gameOver
, abans de les sentències en les quals eliminàvem els listeners de la nau, podem eliminar el listener de cada mina, i després eliminar cada mina, amb el codi següent:
for (var i:Number = numMines; i > 0; i--)
{
stage.getChildAt(i).removeEventListener(Event.ENTER_FRAME, enemy);
stage.removeChildAt(i);
}
Analitzem el que fa aquest bucle. El bucle començarà amb un valor d'i
igual a numMines
, que en el nostre cas és 10
. Com que la variable i
és més gran que 0
, s'executaran les sentències que es troben entre les claus.
Després reduirem en una unitat el valor d'i
(i--
significa i = i – 1
). Per tant, i
valdrà 10
en la primera execució del bucle, 9
en la volta següent, etc., fins a l'últim valor que compleix la condició, és a dir, fins que i
valgui 1
(compleix i > 0
).
En les sentències que hi ha dins del bucle, en primer lloc eliminem el listener de l’element que hi ha dins de l'stage
, en el nivell de visualització i
(10
, 9
, 8
, 7
,…, 1
), que en el nostre és cada mina que hem creat. D'aquesta manera ja no tractaran de detectar possibles col·lisions amb la nau. Amb la línia següent eliminem la mina a la qual acabem d'eliminar el seu listener.
Ara el nostre joc serà funcional i no tindrà errors, però introduirem millores en els passos següents:
- En primer lloc, ens assegurarem que la posición inicial de les mines no sigui gaire a prop de la nau, perquè ens doni temps a començar a jugar.
- Per fer el joc més complex, afegirem un moviment aleatori de les mines per l'escenari.
- Canviarem la imatge del planeta per la imatge d'una mina en el fotograma lose.
- Després afegirem un so per a quan guanyem i un altre per a quan perdem.
- Finalment, permetrem a l'usuari decidir el nombre de mines que vol que apareguin en el joc.