Atividade 4 - Adicionando Inimigos

Agora, vamos criar alguns inimigos para o nosso jogador enfrentar!
Primeiro, vamos carregar uma spritesheet para os inimigos na Scene 1, assim como fizemos para o jogador.
Use a mesma sintaxe que usou para carregar o jogador, mas com um nome diferente, usando assets/enemies.png como fonte da spritesheet, e frameWidth e frameHeight iguais a 16:

load_sprite

Além disso, crie outra animação na Scene 1, do mesmo jeito que criou a animação do jogador (você pode usar os mesmos valores para frameRate e repeat, mas lembre-se de usar enemies no frames):

create_sprite

Esse jogo terá muitos inimigos que parecem idênticos e se comportam de forma muito semelhante. Para facilitar a codificação, vamos usar um conceito do Phaser chamado group para controlar todos os inimigos de uma vez.
Um group é exatamente o que parece — um grupo de objetos. Podemos referenciar esse grupo quando quisermos fazer alterações em todos os seus membros.

Declaramos o grupo de inimigos assim:

this.enemies = this.physics.add.group();

Isso cria um grupo chamado enemies.


Agora, vamos colocar os inimigos na tela. Para facilitar, vamos usar um método auxiliar chamado createEnemies() (que já foi criado para você, mas está vazio):

create_enemies

Chame esse método no create() em vez de no update(), pois queremos que os inimigos sejam criados apenas uma vez, no início do jogo:

enemies_move

A sintaxe para criar uma variável enemy na coordenada (X, Y), usando a spritesheet enemies e dentro do grupo enemies é:

var enemy = this.enemies.create(X, Y, 'enemies');

Atividade 1: Posicionando um Inimigo

Teste escolhendo uma coordenada (X, Y) e colocando essa linha no método createEnemies().
Você também precisa tocar a animação logo após criar o inimigo (então será tudo dentro de createEnemies()).

declare

O resultado será parecido com este (mas com posição diferente — neste exemplo, foi colocado em (300, 100)).


Atividade 2: Posicionando mais Inimigos

Agora vamos adicionar mais inimigos. Adicione alguns no mesmo método, mas cuidado: cada variável de inimigo criada no mesmo escopo precisa ter um nome diferente.

declare


Atividade 3: Criando um Bloco de Inimigos

Agora que você já pegou o jeito, vamos tentar algo mais desafiador: criar inimigos no padrão de bloco mostrado abaixo.
Mas tem um detalhe: faça isso sem declarar cada inimigo com uma linha separada.

DICA: use um loop for aninhado
declare