Minilop Retroware

Tutoriales de shoot 'em up · Parte 6 de 12

Vertical Shmup - Parte 6 - Eliminar alienígenas

2 de agosto de 2022

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:

Captura de pantalla del tutorialCaptura de pantalla del tutorialCaptura de pantalla del tutorialCaptura de pantalla del tutorialCaptura de pantalla del tutorial

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
ENDIF

Esto 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

Todos los tutoriales de shoot 'em up