IPRJ – TÓPICOS ESPECIAIS EM LINGUAGENS DE PROGRAMAÇÃO
EXERCÍCIO DE REVISÃO
1
) Deseja-se adicionar inimigos a um determinado jogo. Sobre estes inimigos, têm-se
as seguintes informações:
Todo inimigo possui uma posição na tela (coordenadas x e y).
Todo inimigo possui um estado atual que determina se ele está vivo ou morto.
Todo inimigo possui um tipo (zumbi, fantasma ou monstro). Cada tipo de
inimigo é representado visualmente por uma imagem diferente: a imagem do
zumbi chama-se “zumbi.png”, imagem do fantasma chama-se
fantasma.png”, e a imagem do monstro chama-se “monstro.png”. O
tamanho de todos os inimigos é 30x60.
a
“
A vida do inimigo é representada por um valor entre 0 e 100. Inicialmente a
vida do inimigo é 100.
Todo inimigo pode ser atacado. Ao ser atacado, o inimigo perde uma
quantidade de vida relativa ao poder de ataque de quem o estiver atacando
(vida = vida - poder_de_ataque).
Se a vida do inimigo for menor ou igual à zero, o inimigo muda o seu estado
atual para morto.
Um inimigo somente pode ser atacado se ele estiver vivo.
De acordo com as informações acima, implemente:
a) Defina uma estrutura de dados para representar e armazenar os inimigos do
jogo.
b) Implemente o método love.load para criar um conjunto de 10 inimigos
aleatórios.
c) Implemente, dentro do método love.update, o processo para verificar se o
inimigo foi atacado pelo jogador. O ataque somente ocorre quando o jogador
pressionar a tecla “a” e estiver colidindo com o inimigo. Sabe-se que a posição
do jogador está armazenada nas variáveis player_xe player_y e que o
seu tamanho é 30x60. Ao ser atacado, deve-se calcular o dano recebido pelo
inimigo e atualizar o seu estado atual (vivo ou morto) de acordo com a sua
quantidade de vida. Sabe-se que o poder de ataque do jogador está
armazenado na variável player_ataque.
d) Implemente, dentro do método love.draw, o processo para desenhar os
inimigos na tela utilizando as suas respectivas imagens (zumbi, fantasma ou
monstro). Somente os inimigos que estiverem vivos devem ser desenhados.