void Mapa::Combate(Jogador *jog) { Jogador *j = nullptr; // se exitir um jogador ao lado -> verificar a adjacencia if (GuardaJogador(jog) != nullptr) { j = GuardaJogador(jog); // se o jogador tiver uma pedra na mao if (jog->getPedra() == true) { j->setVida(j->getVida() - 2); // tirar a pedra do vetor de objeto; jog->retiraPedra(); // adiciona pontos jog->setPontos(jog->getPontos() + 5); } // se nao tiver uma pedra ataca com as maos else { j->setVida(j->getVida() - 1); jog->setPontos(jog->getPontos() + 3); } if (j->getVida() <= 0) { jog->setPontos(jog->getPontos() + 10); } } }
void DesenhaCena() { // Limpa a janela com a cor especificada como cor de fundo glClear(GL_COLOR_BUFFER_BIT); if (estadosJogo.getJogo()) { if (inimigo.getAtirando() && tiroInimigo.getAtirando() == false) { tiroInimigo.setAtirando(true); tiroInimigo.CriarTiro(inimigo); } if (tiroPlayer.getAtirando()) { tiroPlayer.setPlayerAtirando(true); tiroPlayer.setInimigoAtirando(false); tiroPlayer.Desenha(); } if (tiroInimigo.getAtirando()) { tiroInimigo.setInimigoAtirando(true); tiroInimigo.setPlayerAtirando(false); tiroInimigo.Desenha(); } //instancia do tiro do player tiroPlayer.Colisao(inimigo, jogador); //instancia do tiro do inimigo tiroInimigo.Colisao(inimigo, jogador); //colisao da nave inimiga com a do jogador jogador.Colisao(inimigo); inimigo.Desenha(); jogador.Desenha(); telaJogo.DesenhaTexto(tiroPlayer); if (jogador.getVida() <= 0) { estadosJogo.setOverAtivo(true); estadosJogo.setJogo(false); } } if (estadosJogo.getMenuAtivo()) { estadosJogo.menu(); } else if (estadosJogo.getOverAtivo()) { estadosJogo.gameOver(); } if (estadosJogo.getSairJogo()) { exit(0); } glutSwapBuffers(); //função que solicita o redesenho da DesenhaCena, incorporando as modificações de variáveis glutPostRedisplay(); }