Beispiel #1
0
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 ComandosJogador(int tecla, int x, int y) {
	//if e else encadeados para testar a variavel tecla
	
	if (estadosJogo.getJogo())
	{
		if (tecla == GLUT_KEY_RIGHT) {
			jogador.setPosicaoX(0.3f);
		}
		else if (tecla == GLUT_KEY_LEFT) {
			jogador.setPosicaoX(-0.3f);
		}

		if ((tecla == GLUT_KEY_UP) && tiroPlayer.getAtirando() == false) {
			tiroPlayer.setAtirando(true);
			tiroPlayer.CriarTiro(jogador);
		}
	}
	
	else if (estadosJogo.getMenuAtivo() || estadosJogo.getOverAtivo())
	{
		if (tecla == GLUT_KEY_F1) 
		{
			if (estadosJogo.getAuxMenu() == 1)
			{
				estadosJogo.setJogo(true);
				estadosJogo.setOverAtivo(false);
				estadosJogo.setMenuAtivo(false);
				jogador.setVida(4);
				inimigo.setPosicaoY();
				tiroPlayer.setPontos(0);
				estadosJogo.setAuxMenu(1);
			}

			else
			{
				estadosJogo.setSairJogo(true);
			}
		}
		else if (tecla == GLUT_KEY_DOWN) 
		{
			if (estadosJogo.getAuxMenu() == 1)
			{
				estadosJogo.setAuxMenu(0);
			}

			else
			{
				estadosJogo.setAuxMenu(1);
			}
		}

		if ((tecla == GLUT_KEY_UP) && tiroPlayer.getAtirando() == false) 
		{
			if (estadosJogo.getAuxMenu() == 0)
			{
				estadosJogo.setAuxMenu(1);
			}

			else
			{
				estadosJogo.setAuxMenu(0);
			}
		}
	}
	
	//função que solicita o redesenho da DesenhaCena, incorporando as modificações de variáveis
	glutPostRedisplay();
}