Base-Defense
Projeto de um jogo desenvolvido em C++/SFML da disciplina de Linguagem de Programação
Membros públicos | Atributos Protegidos | Mostrar lista completa dos membros
Referência à classe Inimigo

#include <inimigo.hpp>

Diagrama de heranças da classe Inimigo
InimigoTank Runner

Membros públicos

 Inimigo (const string &inimigoFile)
 Construtor da classe Inimigo. Mais...
 
void mover ()
 Move o inimigo em direção ao centro do mapa. Mais...
 
void atualizarProjeteis (float deltaTime, RenderWindow &window)
 Atualiza a posição dos projéteis do inimigo. Mais...
 
virtual bool verificarColisao (const Sprite &sprite)
 Verifica se houve colisão entre o inimigo e um objeto Sprite. Mais...
 
void atirar (const Vector2f &direcao)
 Realiza o disparo de um projétil em direção ao herói. Mais...
 
void atirarCOOP (const Vector2f &direcaoHeroi, const Vector2f &direcaoTank, const float distanciaHeroi, const float distanciaTank)
 Realiza o disparo de projéteis em direção ao herói ou ao tanque aliado no modo cooperativo. Mais...
 
void setPosicao (const Vector2f &posicao)
 Define a posição do inimigo. Mais...
 
Vector2f getPosicao () const
 Retorna a posição do inimigo. Mais...
 
Sprite getSprite () const
 Retorna o Sprite do inimigo. Mais...
 
bool isTextureLoaded () const
 Verifica se a textura do inimigo foi carregada com sucesso. Mais...
 
vector< Projetil > & getProjeteis ()
 Retorna a lista de projéteis do inimigo. Mais...
 
void renderizar (RenderWindow &window)
 Renderiza o inimigo na janela de renderização. Mais...
 

Atributos Protegidos

float velocidade
 
Time intervaloDisparo = seconds(3)
 

Documentação dos Construtores & Destrutor

◆ Inimigo()

Inimigo::Inimigo ( const string &  inimigoFile)

Construtor da classe Inimigo.

Este construtor inicializa o inimigo com uma certa imagem.

Parâmetros
inimigoFileArquivo de imagem do inimigo

Documentação dos métodos

◆ atirar()

void Inimigo::atirar ( const Vector2f &  direcao)

Realiza o disparo de um projétil em direção ao herói.

Esta função é responsável por fazer com que o inimigo dispare um projétil na direção do herói. O projétil é lançado na direção fornecida, após a normalização do vetor de direção.

Parâmetros
direcaoVetor direção do inimigo em relação ao herói.
  • A função verifica se o tempo decorrido desde o último disparo é maior que o intervalo de disparo (intervaloDisparo).
  • O vetor direção (direcao) é normalizado, ou seja, convertido em um vetor de comprimento 1.
  • Um novo projétil é criado na posição atual do inimigo (backgroundSprite_inimigo.getPosition()) e é direcionado na direção normalizada.
  • O projétil é adicionado à lista de projéteis (projeteis) do inimigo.
  • O relógio de disparo (relogio) é reiniciado após o disparo para controlar o intervalo entre disparos.

◆ atirarCOOP()

void Inimigo::atirarCOOP ( const Vector2f &  direcaoHeroi,
const Vector2f &  direcaoTank,
const float  distanciaHeroi,
const float  distanciaTank 
)

Realiza o disparo de projéteis em direção ao herói ou ao tanque aliado no modo cooperativo.

Esta função é responsável por decidir para qual alvo (herói ou tanque aliado) o inimigo deve atirar no modo COOP, com base na distância entre o inimigo e os dois alvos. O inimigo dispara o projétil na direção do alvo mais próximo.

Parâmetros
direcaoHeroiVetor direção do inimigo em relação ao herói.
direcaoTankVetor direção do inimigo em relação ao tanque aliado.
distanciaHeroiA distância entre o inimigo e o herói.
distanciaTankA distância entre o inimigo e o tanque aliado.
  • A função verifica se o tempo decorrido desde o último disparo é maior que o intervalo de disparo.
  • Se a distância até o tanque aliado (distanciaTank) for menor que a distância até o herói (distanciaHeroi), o inimigo dispara um projétil na direção do tanque aliado.
  • Se a distância até o herói for menor ou igual à distância até o tanque aliado, o inimigo dispara um projétil na direção do herói.
  • A direção de disparo é normalizada (vetor de comprimento 1) antes de criar o projétil.
  • O projétil é criado na posição atual do inimigo e é adicionado à lista de projéteis (projeteis).
  • O relógio de disparo (relogio) é reiniciado após o disparo para controlar o intervalo entre disparos.

◆ atualizarProjeteis()

void Inimigo::atualizarProjeteis ( float  deltaTime,
RenderWindow &  window 
)

Atualiza a posição dos projéteis do inimigo.

Este método é responsável por atualizar a posição de todos os projéteis do inimigo. Para cada projétil, a função moverInimigo é chamada para atualizar a posição do projétil. Se o projétil sair da janela, ele é removido.

Parâmetros
deltaTimeO tempo decorrido desde a última atualização.
windowReferência para a janela de renderização.
  • Para cada projétil na lista de projéteis (projeteis), a função moverInimigo é chamada para atualizar a posição do projétil.
  • Se o projétil sair da janela de renderização, ele é removido da lista de projéteis.

◆ getPosicao()

Vector2f Inimigo::getPosicao ( ) const

Retorna a posição do inimigo.

Retorna
Vector2f Vetor posição do inimigo.

◆ getProjeteis()

vector< Projetil > & Inimigo::getProjeteis ( )

Retorna a lista de projéteis do inimigo.

Retorna
vector<Projetil>& Referência para a lista de projéteis do inimigo.

◆ getSprite()

Sprite Inimigo::getSprite ( ) const

Retorna o Sprite do inimigo.

Retorna
Sprite Sprite do inimigo.

◆ isTextureLoaded()

bool Inimigo::isTextureLoaded ( ) const

Verifica se a textura do inimigo foi carregada com sucesso.

Retorna
true Se a textura do inimigo foi carregada com sucesso.
false Se a textura do inimigo não foi carregada com sucesso.

◆ mover()

void Inimigo::mover ( )

Move o inimigo em direção ao centro do mapa.

Este método move o inimigo com uma certa velocidade em direção ao centro do mapa.

◆ renderizar()

void Inimigo::renderizar ( RenderWindow &  window)

Renderiza o inimigo na janela de renderização.

Este método é responsável por renderizar o inimigo. Para cada projétil na lista de projéteis, a função renderizar é chamada para renderizar o projétil.

Parâmetros
windowReferência para a janela de renderização.
  • Se a textura do inimigo foi carregada com sucesso, o inimigo é renderizado na janela de renderização.
  • Para cada projétil na lista de projéteis, a função renderizar é chamada para renderizar o projétil.
  • Se ocorrer um erro ao renderizar o inimigo, uma mensagem de erro é exibida.

◆ setPosicao()

void Inimigo::setPosicao ( const Vector2f &  posicao)

Define a posição do inimigo.

Este método define a posição do inimigo na tela.

Parâmetros
posicaoVetor posição a ser definido.

◆ verificarColisao()

bool Inimigo::verificarColisao ( const Sprite &  sprite)
virtual

Verifica se houve colisão entre o inimigo e um objeto Sprite.

Esta função verifica se houve colisão entre o inimigo e um objeto Sprite. A função getGlobalBounds é utilizada para obter o retângulo delimitador do inimigo e do objeto Sprite. Se os retângulos se sobrepõem, a função retorna true.

Parâmetros
spriteObjeto Sprite a ser verificado.
Retorna
true Se houve colisão entre o inimigo e o objeto Sprite.
false Se não houve colisão entre o inimigo e o objeto Sprite.

Documentação dos dados membro

◆ intervaloDisparo

Time Inimigo::intervaloDisparo = seconds(3)
protected

◆ velocidade

float Inimigo::velocidade
protected

A documentação para esta classe foi gerada a partir dos seguintes ficheiros: