10 - Chefe de Fase (Boss) e ator "Check"


O Boss, chefe de fase, nada mais é do que um ator do tipo "ENEMY" para o qual podemos atribuir uma quantidade maior de vitalidade. Mas eu quero fazer algo mais elaborado, que utilize diferentes atores para fazer o Chefão do final da fase mais impactante e diferenciado de um inimigo normal.

Eu quero criar um Dragão que guarda a saída da primeira fase, seu corpo vai ser estático (cenário), mas sua cabeça e pescoço segmentados terão um movimento oscilatório para cima e para baixo.


 Primeiro vamos criar o estágio do Boss na tela 2, e nós vamos usar uma única tela, então tanto faz o tipo de estágio. Preenchido o cenário com os tiles e colisões de chão e parede podemos partir para os atores.


Na tela de atores eu criei um sprite que chamei de "pescoço 1", gavidade zero (padrão), e ele vai ser o primeiro segmento do pesçcoço do Dragão. O seu Behavior ficou da seguinte forma:


- Ele vai oscilar 0 e 0 na horizontal (não se move na horizontal) e vai oscilar um raio de 2 pixels a uma velocidade 4. Feito isso aperte ESC para voltar para a tela anterior.

Agora vamos fazer mais 3 cópias deste ator (Ctrl + D) e renomear como pescoço 2, 3 e 4. A diferença é que eu vou aumentar gradativamente o raio de pixels do movimento de oscilação de cada um destes atores. Fica assim:
Pescoço 2: oscila verticalmente um raio de 4 pixels à velocidade 4
Pescoço 3: 8 e 4
Pescoço 4: 12 e 4

Na sequência vamos criar o Boss propriamente dito, ou seja, o inimigo que será a cabeça. Como visto nos tutoriais anteriores, crie um novo inimigo (ator ENEMY) e uma nova arma (Ator GUN).
Nossa cabeça de dragão vai ter as seguintes propriedades especiais:

- Hit: vai emitir um som quando atingido
- Death: grafico 26 (fiz a cabeça piscando) duração de 60 frames e emite o som 03.
- Vitality: 8 e white (ele pisca em branco quando atingido)
- Damage: 1 (se o jogador encostar nela vai morrer)
- Gravity: 0 (não será afetado pela gravidade)
- Gun1: ator 21 e 60 frames de tempo entre um ataque e outro.
- Behavior: Ele apenas vai oscilar verticalmente num raio de 16 pixels na velocidade 4, semelhante aos segmentos de pescoço.

Nosso dragão precisa de um ataque, ele vai soltar um projétil de fogo na direção do jogador. Esse ataque sairá da boca do dragão e será um ator GUN normal, que tira 1 de vitalidade. Seu behavior fica da seguinte forma:

1 - ele acelera na velocidade 3 e mira na direção 180º (para a esquerda)

Até aqui tenho todos os atores envolvidos na animação e execução do BOSS prontos. Mas posicionar eles no estágio não basta, é preciso dizer ao programa para finalizar a fase quando o Chefe de fase for morto. Por isso vamos aprender a utilizar um ator do tipo CHECK.


Ator "Check"

Esses atores especiais servem para checar se alguma ação especial aconteceu na tela. Eles podem infligir dano em todos os inimigos da tela, terminar a fase ou fazer trocas de atores sob determinadas condições. A princípio queremos apenas ter certeza de que quando o primeiro BOSS morrer a fase será finalizada.

Na tela de atores (4) vá com o mouse em "ACTORS" e "NEW CHECK".


As propriedades dessa checagem serão as seguintes:


- Check Conditions (são as condições para ativar essa checagem)
    - Cond 1: se o ator 20 (cabeça de dragão) não existe (quando ele morrer vai ativar a checagem)
- Check actions (são as ações que serão tomadas pelo ator de checagem)
    - End stage: 0= no e 1= yes (ele fará a fase encerrar e passar para a seguinte, que é o que queremos)
   - Enemyhit: 0 ou 1 (no nosso caso não precisa, mas serve para infligir dano a todos os inimigos que estiverem na tela)
    - swap: faz a troca de um ator X por um ator Y. Por hora não vamos usar.
    - score: dá pontuação ao jogador.

Feito tudo isso, vamos agora posicionar todos os atores na tela do estágio que criamos para o Boss (os segmentos do pescoço, a cabeça e a checagem) e testar:




Ficou legal, mas fiquei achando que faltou algo, quando o Boss morre a cabeça some mas os atores do pescoço ficam ali, balançando sozinhos. Vamos então criar um jeito de mudar estes atores quando a cabeça morrer.

O que devemos fazer é modificar a checagem que criamos, e nos campos "swap" vamos fazer uma troca de atores. Vai ficar como na imagem abaixo:


O que acontece aqui: quando o ator da cabeça deixar de existir a checagem vai, além de finalizar a fase, trocar o ator 16 (pescoço 1) pelo ator 13 (pedrinhas), e fará o mesmo com os demais segmentos do pescoço, os atores 17, 18 e 19.

Agora é só testar, fazer ajustes nos valores dos atores até tudo ficar funcionando do jeito que você deseja.


Obs: Não se preocupe que de momento a checagem aparece visível na tela de testes, é assim mesmo. Quando o jogo estiver finalizado e "compilado" o ícone de checagem estará invisível na tela. Abaixo a gif do Boss finalizado e em funcionamento:


E não deixe de baixar os arquivos atualizados do projeto ARGS, abra ele, modifique, experimente mudar os valores e modificar os atores.

Nenhum comentário:

Postar um comentário