As mecânicas básicas do jogo começaram a ganhar forma, por isso vamos agora tratar de eliminar os extraterrestres. Primeiro, vamos criar um sprite novo para as explosões dos inimigos, algo como isto:





A seguir, vamos escrever algum código para a explosão. Vou usar o Sprite Type 6 para as explosões:
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
ENDIFIsto removerá a explosão quando chegar ao último fotograma e reduzirá o número de sprites no ecrã.
Agora vamos acrescentar código de deteção de colisões ao evento do nosso sprite extraterrestre (tipo 2). Acrescenta o código abaixo no final do teu 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
Isto faz duas coisas quando é detetada uma colisão entre um torpedo e um extraterrestre:
1) diz ao torpedo para explodir
2) muda o extraterrestre para o tipo e imagem de explosão de extraterrestre
Vamos compilar e testar:
{insert video}
Fixe, já lhes podemos disparar!
No entanto, vejo um defeito óbvio: repara que não acontece nada quando a nossa nave espacial colide com um extraterrestre. Temos de corrigir isso para que tanto o extraterrestre como o jogador explodam.
Volta ao teu evento de extraterrestre (tipo 2) e acrescenta o código seguinte no 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
Agora ambos explodirão quando as naves colidirem.
Estamos a fazer bons progressos, mas ainda há muito por fazer. No entanto, antes de avançar mais acho que temos de tomar uma decisão de jogabilidade.
SEGUINTE: Parte 7 : Uma decisão de jogabilidade
