Las mecánicas básicas del juego han empezado a tomar forma, así que ahora nos ocuparemos de eliminar a los alienígenas. Primero, crearemos un sprite nuevo para las explosiones de los enemigos, algo como esto:





A continuación, escribiremos algo de código para la explosión. Voy a usar el Sprite Type 6 para las explosiones:
EVENT SPRITETYPE6
ANIMATE ; regular amination
IF FRAME = 4 ; are we on the last frame?
IF DIRECTION = 0 ; was enemy hit by a torpedo?
REMOVE ; yes, remove this sprite
SUBTRACT 1 FROM S ; decrement the sprite counter
ENDIF
ENDIFEsto eliminará la explosión cuando llegue al último fotograma y reducirá el número de sprites en pantalla.
Ahora añadiremos código de detección de colisiones al evento de nuestro sprite alienígena (tipo 2). Añade el código siguiente al final de tu evento Sprite Type 2:
; COLLISIONS ; =================== IF COLLISION 1 ; if hit by a torpedo OTHER ; switch to the torpedo IF DIRECTION = 1 ; is it unexploded? LET DIRECTION = 99 ; explode the torpedo ENDIF ENDSPRITE ; return to this sprite LET TYPE = 6 ; switch it to the explosion type LET IMAGE = 4 ; and the explosion image LET FRAME = 0 ; reset it to first frame LET DIRECTION = 0 ; this is an alien exploding ENDIF
Esto hace dos cosas cuando se detecta una colisión entre un torpedo y un alienígena:
1) le dice al torpedo que explote
2) cambia el alienígena al tipo e imagen de explosión de alienígena
Vamos a compilar y probar:
{insert video}
¡Genial, ya podemos dispararles!
Aunque veo un fallo evidente: fíjate en que no pasa nada cuando nuestra nave espacial choca con un alienígena. Tenemos que arreglarlo para que explote tanto el alienígena como el jugador.
Vuelve a tu evento de alienígena (tipo 2) y añade el código siguiente al final:
IF COLLISION 0 ; if enemy and player collide LET TYPE = 6 ; switch it to the explosion type LET IMAGE = 4 ; and the explosion image LET FRAME = 0 ; reset it to first frame LET DIRECTION = 0 ; this is an alen exploding OTHER LET TYPE = 6 ; switch it to the explosion type LET IMAGE = 4 ; and the explosion image LET FRAME = 0 ; reset it to first frame LET DIRECTION = 1 ; this is the player exploding ENDSPRITE ENDIF
Ahora explotarán los dos cuando las naves choquen.
Estamos avanzando bastante bien, pero aún queda mucho por hacer. Sin embargo, antes de seguir creo que tenemos una decisión de jugabilidad que tomar.
SIGUIENTE: Parte 7 : Una decisión de jugabilidad
