Example #1
0
void Jogo::executar()
{
	while(!gTeclado.soltou[TECLA_ESC] && !gEventos.sair)
	{
		uniIniciarFrame();

		//	Se pressionou R, restaura o painel de debug
		if (gTeclado.pressionou[TECLA_R])
			gDebug.restaurar();


		//	Depurar variaveis
		gDebug.depurar("FPS", (int)gTempo.getFPS());
		gDebug.depurar("deltaTempo", gTempo.getDeltaTempo());
		gDebug.depurar("mouse", Vetor2D(gMouse.x, gMouse.y));
		gDebug.depurar("retanguloTela", Quad(0, 0, gJanela.getLargura(), gJanela.getAltura()));

		//	Cria um erro
		gDebug.erro("Erro Teste", this);

		//	Opcionalmente, passa-se uma cor para a depuração
		gDebug.depurar("Verde", "Este é um texto Verde", Cor(0, 255, 0));


		//	Desenhar fundo, para poder ver melhor a transparência do painel
		sprFundo.desenhar(gJanela.getLargura() / 2, gJanela.getAltura() / 2);
		desenharInstrucoes();

		uniTerminarFrame();
	}
}
Example #2
0
void Jogo::executar()
{
	while(!gTeclado.soltou[TECLA_ESC] && !gEventos.sair)
	{
		uniIniciarFrame();

		//	Seu código vem aqui!
		//	...

		uniTerminarFrame();
	}
}
Example #3
0
void Jogo::executar()
{
    while(!gTeclado.pressionou[TECLA_ESC] && !gEventos.sair)
    {
        uniIniciarFrame();

        ambiente.atualizar();
        ambiente.desenhar();

        desenharInstrucoes();

        uniTerminarFrame();
    }
}
Example #4
0
void Jogo::executar()
{
	while(!gTeclado.soltou[TECLA_ESC] && !gEventos.sair)
	{
		uniIniciarFrame();

		//	Atualiza a logica do menu
		menu.atualizar();

		//	Desenha o menu
		menu.desenhar();

		uniTerminarFrame();
	}
}
Example #5
0
void Jogo::manual(){
	while (!teclado.soltou[TECLA_ESC] && !aplicacao.sair)
	{
		uniIniciarFrame();  
		menu.desenhar3();
		if (teclado.soltou[TECLA_ESPACO]){
			menu.jogo = 2;
			menu2();
		}
		if (menu.jogo == 4){
			break;
		}
		menu.atualizar();
		uniTerminarFrame();
	}
	}
Example #6
0
void Jogo::menu1(){
	while (!teclado.soltou[TECLA_ESC] && !aplicacao.sair)
{
		uniIniciarFrame();  

		menu.desenhar1();
		if (teclado.soltou[TECLA_ENTER]){
			menu2();
		}
		if (menu.jogo == 4){
			break;
		}

		uniTerminarFrame();
	}
}
Example #7
0
void Jogo::executar()
{
	while(!gTeclado.soltou[TECLA_ESC] && !gEventos.sair)
	{
		uniIniciarFrame();

		//	Seu código vem aqui!
		//	...
		for (int i = 0; i < MAX_FUNCS_EASING; ++i)
		{
			if (botoes[i].clicou())
			{
				botoes[atual].cor.set(255, 255, 255, 255);
				botoes[i].cor.set(255, 0, 0, 255);
				atual = i;

				for (int i = 0; i < 3; ++i)
				{
					setEaseFuncsTipos();
					tipos[i].cor.set(255, 255, 255, 255);
					objetos[i].reset();
					linha.reset();
				}
			}

			botoes[i].desenhar();
		}

		linha.atualizar(gTempo.getDeltaTempo());

		for (int i = 0; i < 3; ++i)
		{
			tipos[i].desenhar();
			objetos[i].atualizar(gTempo.getDeltaTempo());
			objetos[i].desenhar();
		}
		
		linha.desenhar();
		gGraficos.desenharRetangulo(retan, 255, 255, 255);

		uniTerminarFrame();
	}
}
Example #8
0
void Jogo::executar()
{
	while(!gTeclado.soltou[TECLA_ESC] && !gEventos.sair)
	{
		uniIniciarFrame();

		if (gTeclado.pressionou[TECLA_1])
			//	2)	Tocar a música
			gMusica.tocar("musica1", false);

		if (gTeclado.pressionou[TECLA_2])
			//	2)	Tocar a música
			gMusica.tocar("musica2", true);

		if (gTeclado.pressionou[TECLA_3])
			//	2)	Tocar a música
			gMusica.tocar("musica3", false, 3.0f);


		if (gTeclado.pressionou[TECLA_P])
			gMusica.pausar();		//	pausar
		
		if (gTeclado.pressionou[TECLA_C])
			gMusica.continuar();	//	continuar

		if (gTeclado.pressionou[TECLA_S])
			gMusica.parar();		//	parar imediatamente

		if (gTeclado.pressionou[TECLA_F])
			gMusica.parar(3.0f);	//	parar com fade out


		//	Desenhar instruções
		desenharInstrucoes();

		uniTerminarFrame();
	}
}
Example #9
0
void Jogo::executar()
{
	while(!gTeclado.soltou[TECLA_ESC] && !gEventos.sair)
	{
		uniIniciarFrame();

		//	2) Atualizar a máquina de estados.
		//		É durante este passo que a maquina de 
		//		estados vai trocar de um estado para o outro.
		agente.atualizar();

		//	(Opcional) Desenhar agente.
		//		Uma máquina de estados por si só não é desenhavel.
		//		Mas como estamos usando ela para programar um objeto 
		//		que precisa ser mostrado na tela, precisamos de um
		//		método para desenha-lo.
		agente.desenhar();

		//	Desenhar as instruções 
		desenharInstrucoes();

		uniTerminarFrame();
	}
}
Example #10
0
void Jogo::executar()
{

	
	while (!teclado.soltou[TECLA_ESC] && !aplicacao.sair && menu.jogo == 1)
	{
		ogri.descarregar();
		if (!pig.estaTocando())
			pig.tocar("pig");

			mouse.esconderCursor();
		uniIniciarFrame();
		mouse.esconderCursor();
		mapa.desenhar();
		money.desenhar(930, 270);
		money.setFonte("fonteFazenda");
		vida.desenhar(740, 270);
		vida.setFonte("fonteFazenda");
		waveTimer.setFonte("fonteFazenda");
		for (int i = 0; i < 16; i++) {
			qtdSementes[i].setFonte("fonteFazenda");
		}
		money.setString(to_string(dinheiro) + "$");
		waveTimer.setString(timeWave.getTempoFormato());
		fazendeiro.desenhar(512, 100, dinheiro);
		vida.setString(to_string(marsonVida) + " Vidas");

		if (dinheiro > 50)
			firstW = true;

		if (firstW)
		{
			for (int i = 0; i < 10; i++)
			{
				topeira[i].desenhar();
				topeira[i].andar();
					if (topeira[i].getX() == 512 && topeira[i].getY() == 100){
						marsonVida -= 1;
					}
			}
		}
		
		int recomecar = 0;
		for (int i = 0; i < 10; i++){
			recomecar += topeira[i].getVivo();
		}

		if (teclado.pressionou[TECLA_P]) 
			dinheiro += 5;

		// Inimigos
		if (!(timeWave.getTempo() < 0))
		{
			waveTimer.desenhar(525, 215);
		}

		if (!recomecar)
		{
			if (criei)
			{
				timeWave.setTempoS(90);
				timeWave.inicializar();
				criei = false;
				for (int i = 0; i < 10; i++)
				{
					topeira[i].aumentarRound();
				}
				
			}
			if (timeWave.getTempo() < 0)
			{
				for (int i = 0; i < 10; i++)
				{
					topeira[i].inicializar();
					if (topeira[i].getX() == 512 && topeira[i].getY() == 100){
						marsonVida -= 1;
					}
				}
				criei = true;
				timer.resetar();
			}
		}

		if (marsonVida <= 0)
		{
			gameover.desenhar(janela.getLargura() / 2, janela.getAltura() / 2);
			if (teclado.soltou[TECLA_ESC] || teclado.pressionou[TECLA_ENTER]){
				aplicacao.sair;
			}
		}


		if (teclado.segurando[TECLA_TAB]) // loja (teste)
		{
			loja.desenhar(janela.getLargura() - 264 / 2, janela.getAltura() / 2);
			overlay.desenhar(janela.getLargura() / 2, janela.getAltura() / 2);
			plntlj.desenhar(janela.getLargura() - 264 / 2, janela.getAltura() / 2);
			money.desenhar(janela.getLargura() - 20, 20);
			bag.desenhar(janela.getLargura() / 2, janela.getAltura() / 2);
			loja2.desenhar(janela.getLargura() / 7.75, janela.getAltura() / 2);
			torres.desenhar(janela.getLargura() / 7.75, janela.getAltura() / 2);
			int qtdX = janela.getLargura() / 3 + janela.getLargura() / 50, qtdY = janela.getAltura() / 20;
			for (int i = 0; i < 16; i++){
				qtdSementes[i].setString("= " + to_string(nSementes[i][1]));
				if (!i == 0){
					if (i % 3 == 0)
					{
						qtdX = janela.getLargura() / 3 + janela.getLargura() / 50;
						qtdY += janela.getAltura() / 9;
					}
				}
				qtdSementes[i].desenhar(qtdX, qtdY);
				qtdX += 180;
			}
			if (construindo1 == false && construindo2 == false)
			{
				cursor[mao].desenhar(mouse.x, mouse.y + 12);
			}
			if (mouse.x < 264) // torres
			{
				if (mouse.soltou[BOTAO_ESQ])
				{
					int compra = mouse.y / 85;
					switch (compra)
					{
					case 0:
					{
							  if (dinheiro >= 50)
							  {
								  dinheiro -= 50;
								  construindo1 = true;
								  break;
							  }
					}
					/*case 3:
					{
							  construindo2 = true;
							  break;
					}*/
					}
					}
				}
			if (mouse.x < (janela.getLargura() - 264) && mouse.x > 264) // slotbag
			{
				int slotx = (mouse.x / 200), sloty = (mouse.y / 92) + 7;
				int slot = slotx * sloty;
				if (mouse.pressionou[BOTAO_ESQ])
					switch (slot)
				{
					case 7: // slot 1,1
					{
								if (nSementes[0][1] > 0){
									plantID = 33;
									equip = 0;
								}
								break;
					}
					case 14: // slot 1,2
					{
								 if (nSementes[1][1] > 0){
									 plantID = 36;
									 equip = 1;
								 }
								 break;
					}
					case 21: // slot 1,3
					{
								 if (nSementes[2][1] > 0){
									 plantID = 39;
									 equip = 2;
								 }
								 break;
					}
					case 8: // slot 2,1
					{
								if (nSementes[3][1] > 0){
									plantID = 42;
									equip = 3;
								}
								break;
					}
					case 16: // slot 2,2
					{
								 if (nSementes[4][1] > 0){
									 plantID = 45;
									 equip = 4;
								 }
								 break;
					}
					case 24: // slot 2,3
					{
								 if (nSementes[5][1] > 0){
									 plantID = 48;
									 equip = 5;
								 }
								 break;
					}
					case 9: // slot 3,1
					{
								if (nSementes[6][1] > 0){
									plantID = 51;
									equip = 6;
								}
								break;
					}
					case 18: // slot 3,2
					{
								 if (nSementes[7][1] > 0){
									 plantID = 54;
									 equip = 7;
								 }
								 break;
					}
					case 27: // slot 3,3
					{
								 if (nSementes[8][1] > 0){
									 plantID = 57;
									 equip = 8;
								 }
								 break;
					}
					case 10: // slot 4,1
					{
								 if (nSementes[9][1] > 0){
									 plantID = 60;
									 equip = 9;
								 }
								 break;
					}
					case 20: // slot 4,2
					{
								 if (nSementes[10][1] > 0){
									 plantID = 63;
									 equip = 10;
								 }
								 break;
					}
					case 30: // slot 4,3
					{
								 if (nSementes[11][1] > 0){
									 plantID = 66;
									 equip = 11;
								 }
								 break;
					}
					case 11: // slot 5,1
					{
								 if (nSementes[12][1] > 0){
									 plantID = 69;
									 equip = 12;
								 }
								 break;
					}
					case 22: // slot 5,2
					{
								 if (nSementes[13][1] > 0){
									 plantID = 72;
									 equip = 13;
								 }
								 break;
					}
					case 33: // slot 5,3
					{
								 if (nSementes[14][1] > 0){
									 plantID = 75;
									 equip = 14;
								 }
								 break;
					}
					case 12: //  slot 6,1
					{
								 if (nSementes[15][1] > 0){
									 plantID = 78;
									 equip = 15;
								 }
								 break;
					}
				}
			}
			if (mouse.x >= (janela.getLargura() - 264)) // dentro desse if, o jogador poderá comprar as sementes.
			{
				int compra = mouse.y / 48;
				if (mouse.pressionou[BOTAO_ESQ])
					switch (compra)
				{
					case 0: // godói
						if (dinheiro >= 1)
						{
							dinheiro--;
							plantID = 33;
							nSementes[0][1] ++;
							equip = 0;
							break;
						}
					case 1: // cenoura
						if (dinheiro >= 3)
						{
							dinheiro -= 3;
							plantID = 36;
							nSementes[1][1] ++;
							equip = 1;
							break;
						}
					case 2: // berinjela
						if (dinheiro >= 6)
						{
							dinheiro -= 6;
							plantID = 39;
							nSementes[2][1] ++;
							equip = 2;
							break;
						}
					case 3: // 
						if (dinheiro >= 10)
						{
							plantID = 42;
							nSementes[3][1] ++;
							dinheiro -= 10;
							equip = 3;
							break;
						}
					case 4:
						if (dinheiro >= 15)
						{
							plantID = 45;
							nSementes[4][1] ++;
							dinheiro -= 15;
							equip = 4;
							break;
						}
					case 5:
						if (dinheiro >= 20)
						{
							plantID = 48;
							nSementes[5][1] ++;
							dinheiro -= 20;
							equip = 5;
							break;
						}
					case 6:
						if (dinheiro >= 30)
						{
							plantID = 51;
							nSementes[6][1] ++;
							dinheiro -= 30;
							equip = 6;
							break;
						}
					case 7:
						if (dinheiro >= 50)
						{
							plantID = 54;
							nSementes[7][1] ++;
							dinheiro -= 50;
							equip = 7;
							break;
						}
					case 8:
						if (dinheiro >= 75)
						{
							plantID = 57;
							nSementes[8][1] ++;
							dinheiro -= 75;
							equip = 8;
							break;
						}
					case 9:
						if (dinheiro >= 100)
						{
							plantID = 60;
							nSementes[9][1] ++;
							dinheiro -= 100;
							equip = 9;
							break;
						}
					case 10:
						if (dinheiro >= 150)
						{
							plantID = 63;
							nSementes[10][1] ++;
							dinheiro -= 150;
							equip = 10;
							break;
						}
					case 11:
						if (dinheiro >= 200)
						{
							plantID = 66;
							nSementes[11][1] ++;
							dinheiro -= 200;
							equip = 11;
							break;
						}
					case 12:
						if (dinheiro >= 300)
						{
							plantID = 69;
							nSementes[12][1] ++;
							dinheiro -= 300;
							equip = 12;
							break;
						}
					case 13:
						if (dinheiro >= 500)
						{
							plantID = 72;
							nSementes[13][1] ++;
							dinheiro -= 500;
							equip = 13;
							break;
						}
					case 14:
						if (dinheiro >= 1000)
						{
							plantID = 75;
							nSementes[14][1] ++;
							dinheiro -= 1000;
							equip = 14;
							break;
						}
					case 15:
						if (dinheiro >= 5000)
						{
							plantID = 78;
							nSementes[15][1] ++;
							dinheiro -= 5000;
							equip = 15;
							break;
						}
				}
			}
		}

		if (dinheiro < 5)
			money.setCor(255, 0, 0);
		if (dinheiro > 5)
			money.setCor(255, 255, 255);

		if (!teclado.segurando[TECLA_TAB] && !construindo1 && !construindo2)
		{
			if (mapa.getCamadaDeTiles("Objetos")->getIDdoTile((mouse.x) / 32, (mouse.y) / 32) > 34 || mapa.getCamadaDeTiles("Objetos")->getIDdoTile((mouse.x) / 32, (mouse.y) / 32) == 4)
			{
				cursor[mao].desenhar(mouse.x, mouse.y + 12);
			}
			else if (mapa.getCamadaDeTiles("Temporaria")->getIDdoTile((mouse.x) / 32, (mouse.y) / 32) > 32)
				cursor[foice].desenhar(mouse.x, mouse.y - 12);

			else if (mapa.getCamadaDeTiles("Temporaria")->getIDdoTile((mouse.x) / 32, (mouse.y) / 32) >= 33 && mapa.getCamadaDeTiles("Temporaria")->getIDdoTile((mouse.x) / 32, (mouse.y) / 32) <= 80 || mapa.getCamadaDeTiles("Temporaria")->getIDdoTile((mouse.x) / 32, (mouse.y) / 32) == 7)
				cursor[semente].desenhar(mouse.x, mouse.y);

			else // cursor fora da loja 
				cursor[ancinho].desenhar(mouse.x, mouse.y - 12);
		}

		if (!lido){
			criarLucro.open("lucro.txt");
			criarLucro << 1 << " " << 3 << " " << 6 << " " << 10 << " " << 15 << " " << 20 << " " << 30 << " " << 50 << " " << 75 << " " << 100
				<< " " << 150 << " " << 200 << " " << 300 << " " << 500 << " " << 1000 << " " << 5000;
			criarLucro.close();
			lerLucro.open("lucro.txt");
			for (int i = 0; i < 16; i++)
			{
				lerLucro >> preco[i][1];
			}
			lido = true;
		}

		int mouseX, mouseY;
		mouseX = mouse.x / 32;
		mouseY = mouse.y / 32;

		if (!teclado.segurando[TECLA_TAB]) //testando pra ver se a loja nao esta aberta
		{
			//testando pra ver se estou tentando plantar na terrinha e verificando se eu tenho alguma semente selecionada
			if (mouse.pressionou[BOTAO_ESQ] && mapa.getCamadaDeTiles("Temporaria")->getIDdoTile((mouse.x) / 32, (mouse.y) / 32) == 7 && !plantID == 0 && nSementes[equip][1] > 0)
			{
				nSementes[equip][1]--;
				if (mouseX >= 2 && mouseX <= 5 && mouseY >= 2 && mouseY <= 5)
				{
					//mando pra classe planta o id da planta e a posição do tile usando o mouseX / 32 e mouseY / 32
					plantacao[0][mouseX - 2][mouseY - 2].plantar(plantID, mouseX, mouseY);
					plantadas++;
				}
				else if (mouseX >= 8 && mouseX <= 11 && mouseY >= 2 && mouseY <= 5)
				{
					plantacao[1][mouseX - 8][mouseY - 2].plantar(plantID, mouseX, mouseY);
					plantadas++;
				}
				else if (mouseX >= 20 && mouseX <= 23 && mouseY >= 2 && mouseY <= 5)
				{
					plantacao[2][mouseX - 20][mouseY - 2].plantar(plantID, mouseX, mouseY);
					plantadas++;
				}
				else if (mouseX >= 26 && mouseX <= 29 && mouseY >= 2 && mouseY <= 5)
				{
					plantacao[3][mouseX - 26][mouseY - 2].plantar(plantID, mouseX, mouseY);
					plantadas++;
				}
			}

			// vejo se nao estou tentando arar uma terra ja arada e tambem se nao estou tentando arar uma plantinha
			else if (mouse.pressionou[BOTAO_ESQ] && mapa.getCamadaDeTiles("Objetos")->getIDdoTile((mouse.x) / 32, (mouse.y) / 32) == 18 && !(mapa.getCamadaDeTiles("Temporaria")->getIDdoTile((mouse.x) / 32, (mouse.y) / 32) > 32) && !(mapa.getCamadaDeTiles("Temporaria")->getIDdoTile((mouse.x) / 32, (mouse.y) / 32) == 7) && dinheiro > 0)
			{
				mapa.getCamadaDeTiles("Temporaria")->setIDdoTile(7, (mouse.x) / 32, (mouse.y) / 32);
				dinheiro--;
			}
			// se for uma planta: colher
			else if (mouse.pressionou[BOTAO_ESQ] && (mapa.getCamadaDeTiles("Temporaria")->getIDdoTile((mouse.x) / 32, (mouse.y) / 32) > 32) && (mapa.getCamadaDeTiles("Temporaria")->getIDdoTile((mouse.x) / 32, (mouse.y) / 32) < 82))
			{
				if (mouseX >= 2 && mouseX <= 5 && mouseY >= 2 && mouseY <= 5)// Primeira plantação
				{
					plantacao[0][mouseX - 2][mouseY - 2].colhida = true;
					switch (plantacao[0][mouseX - 2][mouseY - 2].estagio)
					{
					case 0:
						for (int i = 0; i < 16; i++)
						{
							if (preco[i][0] == plantacao[0][mouseX - 2][mouseY - 2].id){
								dinheiro += preco[i][1] * 0.3;
								break;
							}
						}
						break;
					case 1:
						for (int i = 0; i < 16; i++)
						{
							if (preco[i][0] == plantacao[0][mouseX - 2][mouseY - 2].id){
								dinheiro += preco[i][1];
							}
						}
						break;
					case 2:
						if (plantacao[0][mouseX - 2][mouseY - 2].id == 33)
						{
							dinheiro += preco[0][1] * 5;

						}
						else if (plantacao[0][mouseX - 2][mouseY - 2].id == 36)
						{

							dinheiro += preco[1][1] * 3;

						}
						else if (plantacao[0][mouseX - 2][mouseY - 2].id == 39)
						{

							dinheiro += preco[2][1] * 2.5;

						}
						else{
							for (int i = 0; i < 16; i++)
							{
								if (preco[i][0] == plantacao[0][mouseX - 2][mouseY - 2].id){
									dinheiro += preco[i][1] * 2;
								}
							}
						}
						break;
					}
				}
				else if (mouseX >= 8 && mouseX <= 11 && mouseY >= 2 && mouseY <= 5) //Segunda plantação
				{
					plantacao[1][mouseX - 8][mouseY - 2].colhida = true;
					switch (plantacao[1][mouseX - 8][mouseY - 2].estagio)
					{
					case 0:
						for (int i = 0; i < 16; i++)
						{
							if (preco[i][0] == plantacao[1][mouseX - 8][mouseY - 2].id){
								dinheiro += preco[i][1] * 0.3;
								break;
							}
						}
						break;
					case 1:
						for (int i = 0; i < 16; i++)
						{
							if (preco[i][0] == plantacao[1][mouseX - 8][mouseY - 2].id){
								dinheiro += preco[i][1];
							}
						}
						break;
					case 2:
						if (plantacao[0][mouseX - 2][mouseY - 2].id == 33)
						{

							dinheiro += preco[0][1] * 5;

						}
						else if (plantacao[1][mouseX - 8][mouseY - 2].id == 36)
						{

							dinheiro += preco[1][1] * 3;

						}
						else if (plantacao[1][mouseX - 8][mouseY - 2].id == 39)
						{

							dinheiro += preco[2][1] * 2.5;

						}
						else{
							for (int i = 0; i < 16; i++)
							{
								if (preco[i][0] == plantacao[1][mouseX - 8][mouseY - 2].id){
									dinheiro += preco[i][1] * 2;
								}
							}
						}
						break;
					}
				}
				else if (mouseX >= 20 && mouseX <= 23 && mouseY >= 2 && mouseY <= 5) // Terceira plantação
				{
					plantacao[2][mouseX - 20][mouseY - 2].colhida = true;
					switch (plantacao[2][mouseX - 20][mouseY - 2].estagio)
					{
					case 0:
						for (int i = 0; i < 16; i++)
						{
							if (preco[i][0] == plantacao[2][mouseX - 20][mouseY - 2].id){
								dinheiro += preco[i][1] * 0.3;
								break;
							}
						}
						break;
					case 1:
						for (int i = 0; i < 16; i++)
						{
							if (preco[i][0] == plantacao[2][mouseX - 20][mouseY - 2].id){
								dinheiro += preco[i][1];
							}
						}
						break;
					case 2:
						if (plantacao[2][mouseX - 20][mouseY - 2].id == 33)
						{
							dinheiro += preco[0][1] * 5;

						}
						else if (plantacao[2][mouseX - 20][mouseY - 2].id == 36)
						{

							dinheiro += preco[1][1] * 3;

						}
						else if (plantacao[2][mouseX - 20][mouseY - 2].id == 39)
						{

							dinheiro += preco[2][1] * 2.5;
						}
						else{
							for (int i = 0; i < 16; i++)
							{
								if (preco[i][0] == plantacao[2][mouseX - 20][mouseY - 2].id)
								{
									dinheiro += preco[i][1] * 2;
								}
							}
						}
						break;
					}
				}
				else if (mouseX >= 26 && mouseX <= 29 && mouseY >= 2 && mouseY <= 5) // Quarta platanção
				{
					plantacao[3][mouseX - 26][mouseY - 2].colhida = true;
					switch (plantacao[3][mouseX - 20][mouseY - 2].estagio)
					{
					case 0:
						for (int i = 0; i < 16; i++)
						{
							if (preco[i][0] == plantacao[3][mouseX - 26][mouseY - 2].id){
								dinheiro += preco[i][1] * 0.3;
								break;
							}
						}
						break;
					case 1:
						for (int i = 0; i < 16; i++)
						{
							if (preco[i][0] == plantacao[3][mouseX - 26][mouseY - 2].id){
								dinheiro += preco[i][1];
							}
						}
						break;
					case 2:
						if (plantacao[3][mouseX - 26][mouseY - 2].id == 33)
						{
							for (int i = 0; i < 16; i++)
							{
								if (preco[i][0] == plantacao[3][mouseX - 26][mouseY - 2].id){
									dinheiro += preco[i][1] * 5;
								}
							}
						}
						else if (plantacao[3][mouseX - 26][mouseY - 2].id == 36)
						{
							for (int i = 0; i < 16; i++)
							{
								if (preco[i][0] == plantacao[3][mouseX - 26][mouseY - 2].id){
									dinheiro += preco[i][1] * 3;
								}
							}
						}
						else if (plantacao[3][mouseX - 26][mouseY - 2].id == 39)
						{
							for (int i = 0; i < 16; i++)
							{
								if (preco[i][0] == plantacao[3][mouseX - 26][mouseY - 2].id){
									dinheiro += preco[i][1] * 2.5;
								}
							}
						}
						else{
							for (int i = 0; i < 16; i++)
							{
								if (preco[i][0] == plantacao[3][mouseX - 26][mouseY - 2].id){
									dinheiro += preco[i][1] * 2;
								}
							}
						}
						break;
					}
				}
				mapa.getCamadaDeTiles("Temporaria")->setIDdoTile(7, (mouse.x) / 32, (mouse.y) / 32);
			}
		}
		//else if (mouse.pressionou[BOTAO_ESQ] && mapa.getCamadaDeTiles("Objetos")->getIDdoTile((mouse.x) / 32, (mouse.y) / 32) == 18)

		if (construindo1 == true)
		{
			cursor[torre1].desenhar(mouse.x, mouse.y - 24);
			if ((mouse.pressionou[BOTAO_ESQ]) && (mapa.getCamadaDeTiles("Temporaria")->getIDdoTile(mouseX, mouseY) == 20) && !(mapa.getCamadaDeTiles("Temporaria")->getIDdoTile(mouseX, mouseY) == 337))
			{
				construindo1 = false;
				mapa.getCamadaDeTiles("Temporaria")->setIDdoTile(337, (mouse.x) / 32, (mouse.y) / 32);
				numeroTorres++;
				// copiar torres pro novo vetor
				Torre* torres = torresAtq;
				torresAtq = new Torre[numeroTorres];
				for (int i = 0; i < numeroTorres - 1; ++i){
					*torresAtq = *(torres + i);
				}
				delete[] torres;
				Torre* novaTorre = torresAtq + (numeroTorres - 1);
				novaTorre->setXY(mouse.x, mouse.y);
			}
		}

		/*if (construindo2 == true)
		{
			cursor[torre2].desenhar(mouse.x, mouse.y - 24);
			if (mouse.pressionou[BOTAO_ESQ])
			{
				construindo2 = false;
				mapa.getCamadaDeTiles("Temporaria")->setIDdoTile(4, (mouse.x) / 32, (mouse.y) / 32);
			}
		}*/

//		                  F*****G INTERFACE DO UPGRADE DA TORRE

		if (mouse.pressionou[BOTAO_ESQ] && mapa.getCamadaDeTiles("Temporaria")->getIDdoTile((mouse.x / 32), (mouse.y / 32)) == 337 || mapa.getCamadaDeTiles("Temporaria")->getIDdoTile((mouse.x / 32), (mouse.y / 32)) == 338 || mapa.getCamadaDeTiles("Temporaria")->getIDdoTile((mouse.x / 32), (mouse.y / 32)) == 339)
		{
			torreTileX = mouse.x / 32;
			torreTileY = mouse.y / 32;
		torrex = mouse.x;
		torrey = mouse.y;
			coisa = true;
		}

		if (coisa == true)
		{
		aberto = true;
		huelay.desenhar(torrex + 32, torrey);
		interface1.desenhar(torrex + 32, torrey);
		}



		if ((teclado.pressionou[TECLA_Q]) && (coisa == true) && (aberto = true))
		{
			for (int i = 0; i < numeroTorres; i++)
			{
				int torreTileX_ = torresAtq[i].getX() / 32;
				int torreTileY_ = torresAtq[i].getY() / 32;
					if ((torreTileX_ == torreTileX) && (torreTileY_ == torreTileY))
					{
						if (torresAtq[i].getLevel() == 0)
						{
							if (dinheiro > 250)
							{
								dinheiro -= 250;
								torresAtq[i].upar();
								int level_ = torresAtq[i].getLevel();
								mapa.getCamadaDeTiles("Temporaria")->setIDdoTile(337 + level_, (torrex / 32), (torrey / 32));
							}
						}
						else if (torresAtq[i].getLevel() == 1)
						{
							if (dinheiro > 1250)
				{
								dinheiro -= 1250;
					torresAtq[i].upar();
					int level_ = torresAtq[i].getLevel();
					mapa.getCamadaDeTiles("Temporaria")->setIDdoTile(337 + level_, (torrex / 32), (torrey / 32));
				}
			}
					}
				}
			aberto = false;
			coisa = false;
		}

		else if (teclado.pressionou[TECLA_ESPACO])
		{
			coisa = false;
		}

		coisa = true;

		/*else if ((teclado.pressionou[TECLA_W]) && (coisa == true) && (aberto = true))
		{
			for (int i = 0; i < numeroTorres; i++)
			{
				if ((torresAtq[i].getX() == torrex) && (torresAtq[i].getY() == torrey))
		{
			mapa.getCamadaDeTiles("Temporaria")->setIDdoTile(20, (torrex / 32), (torrey / 32));
					delete torresAtq[i];
					Torre* torres = torresAtq;
					torresAtq = new Torre[numeroTorres - 1];
					for (int j = 0; j < numeroTorres - 1; ++j){
						if (j < i)
							*torresAtq = *(torres + j);
						else
							*torresAtq = *(torres + j - 1);
					}
					delete[] torres;
			coisa = false;
					delete (torresAtq + i);
					break;
				}
			}
		}
		*/

		

		/*if (mouse.y > janela.getAltura() / 2)
		{
			bcursor = true;
			if (upgrade == 0)
			cursor[atk1].desenhar(mouse.x, mouse.y - 24);
			if (upgrade == 1)
				cursor[atk2].desenhar(mouse.x, mouse.y - 24);
		}
		else
			bcursor = false;
		*/

		for (int i = 0; i < 10; i++)
		{
			if (upgrade == 0)
			{
				for (int j = 0; j < numeroTorres; j++)
				{
					int test = torresAtq[j].getX();
					if ((torresAtq[j].getX() >= topeira[i].getX() - 64 && torresAtq[j].getX() <= topeira[i].getX() + 64) && (torresAtq[j].getY() >= topeira[i].getY() - 64 && torresAtq[j].getY() <= topeira[i].getY() + 64) && topeira[i].getVivo())
					{
						
						topeira[i].levarDano(torresAtq[j].getDano());
					}
				}
			}
			else if (upgrade == 1)
			{
				for (int k = 0; k < numeroTorres; k++){
					if ((torresAtq[k].getX() >= topeira[i].getX() - 64 && torresAtq[k].getX() <= topeira[i].getX() + 64) && (torresAtq[k].getY() >= topeira[i].getY() - 64 && torresAtq[k].getY() <= topeira[i].getY() + 64) && topeira[i].getVivo())
					{
						topeira[i].levarDano(torresAtq[k].getDano());
					}
				}
			}
		}

		for (auto& p1 : plantacao) {	// &plantacao[]
			for (auto& p2 : p1) {		// &plantacao[][]
				for (auto& p3 : p2) {	// &plantacao[][][]
					p3.amadurecer(plantID);
				}
			}
		}

		achiev.achievDinheiro(dinheiro);
		achiev.achievPlanta(plantadas);
		achiev.achievTorre(numeroTorres);

		uniTerminarFrame();

	}