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

#include <Gerenciamento_Tela.hpp>

Membros públicos

 gerenciamentoTela (const string &backgroundFile, const string &backgroundMenuFile, const string &musicaTemaFile, Heroi *heroi, Base *base, const Vector2f &windowSize)
 Construtor da classe gerenciamentoTela. Mais...
 
void iniciarArquivos (const string &backgroundFile, const string &backgroundMenuFile, const string &musicaTemaFile)
 Inicializa os arquivos de imagem, fonte e música do jogo. Mais...
 
void setaArquivos (const Vector2f &windowSize)
 Configura os arquivos de imagem, fonte e música do jogo. Mais...
 
void eventos (RenderWindow &window, const Vector2f &windowSize)
 Gerencia os eventos de entrada do usuário para a tela atual do jogo. Mais...
 
void renderizar (RenderWindow &window)
 Renderiza os objetos na tela. Mais...
 
void atualizar (RenderWindow &window)
 Atualiza o estado do jogo e os objetos presentes na tela. Mais...
 
void setBackgroundScale (RenderWindow &window, Sprite &sprite)
 Ajuda a ajustar a escala do fundo da tela. Mais...
 
void setHeroiPosition (RenderWindow &window)
 Define a posição do herói na tela. Mais...
 
Vector2f getPosicaoRandom (const Vector2u &windowSize)
 Retorna uma posição aleatória na tela. Mais...
 
void atualizarProjeteisInimigos (float deltaTime, RenderWindow &window)
 Atualiza a posição dos projéteis inimigos na tela. Mais...
 
void renderizarProjeteisInimigos (RenderWindow &window)
 Renderiza os projéteis inimigos na tela. Mais...
 
void atualizarDrop (RenderWindow &window)
 Atualiza a posição dos drops na tela. Mais...
 
bool atualizarDrops (RenderWindow &window)
 Atualiza os drops e remove os que já passaram do tempo de desaparecer. Mais...
 
int getRandomChanceDrop ()
 Retorna um valor aleatório para a chance de drop. Mais...
 
int getRandomInimigo ()
 Retorna um valor aleatório para o tipo de inimigo. Mais...
 
void setFimDeJogo ()
 Gerencia o fim do jogo. Mais...
 
void setKills ()
 Gerencia a renderização das kills na tela. Mais...
 
void waveInimigos ()
 Gerencia o spawn de inimigos em waves. Mais...
 
void resetarJogo (const Vector2f &windowSize)
 Reseta os valores do jogo para o estado inicial. Mais...
 

Documentação dos Construtores & Destrutor

◆ gerenciamentoTela()

gerenciamentoTela::gerenciamentoTela ( const string &  backgroundFile,
const string &  backgroundMenuFile,
const string &  musicaTemaFile,
Heroi heroi,
Base base,
const Vector2f &  windowSize 
)

Construtor da classe gerenciamentoTela.

Este construtor inicializa a tela do jogo, carregando imagens e fontes, configurando texturas e sprites, e configurando a música de fundo. Também configura os elementos do menu e outras variáveis necessárias para o gerenciamento da tela do jogo.

Parâmetros
backgroundFileO caminho para o arquivo de imagem do fundo da tela.
backgroundMenuFileO caminho para o arquivo de imagem do fundo do menu.
musicaTemaFileO caminho para o arquivo de música de fundo.
heroiPonteiro para o objeto do tipo Heroi, representando o herói no jogo.
basePonteiro para o objeto do tipo Base, representando a base no jogo.
windowSizeTamanho da janela do jogo (largura e altura).

Documentação dos métodos

◆ atualizar()

void gerenciamentoTela::atualizar ( RenderWindow &  window)

Atualiza o estado do jogo e os objetos presentes na tela.

Esta função é responsável por atualizar a posição dos personagens e inimigos, verificar colisões, processar a lógica dos projéteis e gerar novos inimigos com base no tempo decorrido. Ela lida com diferentes estados do jogo, como JOGO e COOP, e realiza ações específicas dependendo do estado atual.

Parâmetros
windowA janela do jogo onde as atualizações são aplicadas.
  • No estado JOGO e COOP, a função realiza as seguintes ações:
    • Atualiza o tempo decorrido e verifica a regeneração da vida da base.
    • Atualiza o herói e seus projéteis.
    • Atualiza os inimigos e seus projéteis, verificando colisões com o herói, o tanque aliado (se aplicável) e a base.
    • Dependendo do estado, os inimigos podem atirar no herói ou no tanque aliado.
    • Atualiza e remove os drops, recuperando munição e vida conforme o tipo de drop.
    • Atualiza a lista de projéteis inimigos e verifica colisões com a janela e com outros objetos, removendo projéteis e inimigos quando necessário.
    • Verifica a colisão do projétil com inimigos, tanques e corredores, gerando drops conforme o tipo de inimigo atingido.
    • Verifica a colisão dos inimigos com a base e remove-os se necessário.
    • Atualiza a posição dos inimigos e verifica se colidem com a base, removendo-os se a colisão ocorrer.
    • Realiza o spawn de novos inimigos com base em intervalos de tempo definidos e em condições específicas.
  • No estado COOP, além das ações descritas acima, o tanque aliado também é atualizado e verifica colisões com drops e projéteis.
  • A função também realiza a lógica de spawn de novos inimigos, garantindo que a posição dos inimigos seja válida e não se sobreponha a outras entidades.
  • Os inimigos são spawnados de forma aleatória com base em uma chance definida e em um tempo específico.

◆ atualizarDrop()

void gerenciamentoTela::atualizarDrop ( RenderWindow &  window)

Atualiza a posição dos drops na tela.

Parâmetros
windowA janela do jogo onde as atualizações são aplicadas.

◆ atualizarDrops()

bool gerenciamentoTela::atualizarDrops ( RenderWindow &  window)

Atualiza os drops e remove os que já passaram do tempo de desaparecer.

Parâmetros
dropsvetor de drops

◆ atualizarProjeteisInimigos()

void gerenciamentoTela::atualizarProjeteisInimigos ( float  deltaTime,
RenderWindow &  window 
)

Atualiza a posição dos projéteis inimigos na tela.

Esta função atualiza a posição dos projéteis inimigos na tela, verificando colisões com a janela e com outros objetos.

Parâmetros
deltaTimeO tempo decorrido desde a última atualização.
windowA janela do jogo onde as atualizações são aplicadas.
  • A função atualiza a posição dos projéteis inimigos e verifica colisões com a janela, removendo os projéteis se necessário.
  • Verifica colisões dos projéteis inimigos com o herói, a base e os inimigos, removendo os projéteis e os inimigos atingidos.
  • Verifica colisões dos projéteis inimigos com o tanque aliado (se aplicável), removendo os projéteis e o tanque se atingidos.

◆ eventos()

void gerenciamentoTela::eventos ( RenderWindow &  window,
const Vector2f &  windowSize 
)

Gerencia os eventos de entrada do usuário para a tela atual do jogo.

Esta função lida com os eventos do mouse e teclado, alterando o estado do jogo e executando ações específicas com base no estado atual da tela e nas interações do usuário. Dependendo do estado, pode lidar com eventos de clique do mouse para mudar o estado do jogo, posicionar o herói, disparar projéteis ou alterar a dificuldade do jogo.

Parâmetros
windowA janela do jogo onde os eventos estão sendo processados.
  • No estado MENU, a função verifica se o usuário está sobre um botão do menu e altera sua cor. Quando um botão é clicado, o estado do jogo é alterado conforme o botão clicado:
    • Botão 0: Muda para o estado JOGO.
    • Botão 1: Muda para o estado COOP e cria um novo tanque.
    • Botão 2: Muda para o estado DIFICULDADE.
  • No estado JOGO, a função permite que o usuário:
    • Posicione o herói com o botão direito do mouse.
    • Dispare projéteis com o botão Q.
  • No estado COOP, além das ações do estado JOGO, o usuário pode:
    • Disparar projéteis com o botão esquerdo do mouse.
    • Trocar munição por vida base com a tecla R.
  • No estado DIFICULDADE, a função verifica a posição do mouse sobre os botões de dificuldade e altera a dificuldade do jogo com base no botão clicado. Após selecionar a dificuldade, retorna ao estado MENU.

◆ getPosicaoRandom()

Vector2f gerenciamentoTela::getPosicaoRandom ( const Vector2u &  windowSize)

Retorna uma posição aleatória na tela.

Esta função retorna uma posição aleatória na tela com base no tamanho da janela.

Parâmetros
windowSizeO tamanho da janela do jogo.
Retorna
A posição aleatória na tela.

◆ getRandomChanceDrop()

int gerenciamentoTela::getRandomChanceDrop ( )

Retorna um valor aleatório para a chance de drop.

◆ getRandomInimigo()

int gerenciamentoTela::getRandomInimigo ( )

Retorna um valor aleatório para o tipo de inimigo.

◆ iniciarArquivos()

void gerenciamentoTela::iniciarArquivos ( const string &  backgroundFile,
const string &  backgroundMenuFile,
const string &  musicaTemaFile 
)

Inicializa os arquivos de imagem, fonte e música do jogo.

Esta função carrega os arquivos de imagem, fonte e música do jogo, exibindo mensagens de erro caso ocorra algum problema durante o carregamento dos arquivos.

Parâmetros
backgroundFileO caminho para o arquivo de imagem do fundo da tela.
backgroundMenuFileO caminho para o arquivo de imagem do fundo do menu.
musicaTemaFileO caminho para o arquivo de música de fundo.

◆ renderizar()

void gerenciamentoTela::renderizar ( RenderWindow &  window)

Renderiza os objetos na tela.

Esta função renderiza os objetos na tela, como o fundo, os botões do menu, os inimigos, os projéteis e os drops.

Parâmetros
windowA janela do jogo onde os objetos são renderizados.
  • No estado MENU, a função renderiza o fundo e os botões do menu.
  • No estado DIFICULDADE, a função renderiza o fundo e os botões de dificuldade.
  • No estado JOGO e COOP, a função renderiza o fundo, o herói, a base, os inimigos, os projéteis e os drops.
  • No estado GAMEOVER, a função renderiza um círculo vermelho na tela.
  • No estado COOP, a função renderiza o tanque aliado.

◆ renderizarProjeteisInimigos()

void gerenciamentoTela::renderizarProjeteisInimigos ( RenderWindow &  window)

Renderiza os projéteis inimigos na tela.

Esta função renderiza os projéteis inimigos na tela, exibindo os projéteis disparados pelos inimigos.

Parâmetros
windowA janela do jogo onde os projéteis são renderizados.

◆ resetarJogo()

void gerenciamentoTela::resetarJogo ( const Vector2f &  windowSize)

Reseta os valores do jogo para o estado inicial.

Esta função reseta os valores do jogo para o estado inicial, zerando a vida do herói, a vida da base, a quantidade de inimigos

◆ setaArquivos()

void gerenciamentoTela::setaArquivos ( const Vector2f &  windowSize)

Configura os arquivos de imagem, fonte e música do jogo.

Esta função configura os arquivos de imagem, fonte e música do jogo, definindo texturas e sprites para o fundo da tela, o fundo do menu, os botões do menu, a música de fundo e o texto do menu.

Parâmetros
windowSizeO tamanho da janela do jogo (largura e altura).

◆ setBackgroundScale()

void gerenciamentoTela::setBackgroundScale ( RenderWindow &  window,
Sprite &  sprite 
)

Ajuda a ajustar a escala do fundo da tela.

Esta função ajusta a escala do fundo da tela com base no tamanho da janela do jogo.

Parâmetros
windowA janela do jogo.
spriteO sprite do fundo da tela.

◆ setFimDeJogo()

void gerenciamentoTela::setFimDeJogo ( )

Gerencia o fim do jogo.

Esta função verifica se o jogo chegou ao fim, alterando o estado do jogo para GAMEOVER caso o herói ou a base tenham sido destruídos ou o tempo de jogo tenha se esgotado.

◆ setHeroiPosition()

void gerenciamentoTela::setHeroiPosition ( RenderWindow &  window)

Define a posição do herói na tela.

Esta função define a posição do herói na tela com base na posição do mouse.

Parâmetros
windowA janela do jogo.

◆ setKills()

void gerenciamentoTela::setKills ( )

Gerencia a renderização das kills na tela.

Esta função renderiza o texto das kills na tela, exibindo a quantidade de inimigos eliminados pelo jogador.

◆ waveInimigos()

void gerenciamentoTela::waveInimigos ( )

Gerencia o spawn de inimigos em waves.

Esta função gerencia o spawn de inimigos em waves, ajustando o tempo de spawn de inimigos com base no tempo decorrido.


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