Beispiel #1
0
// O relógio digital que acompanha o demo
unsigned long int RelogioDigital(int x, int y)
{
	// 1:56 minutos em milisegundos
	static unsigned long tempo = 116000;
	// O tempo inicial do demo
	static unsigned long tinicial = C2D2_TempoSistema();
	// O tempo atual
	static unsigned long tatual;
	static char texto[12];
	// Pega o tempo atual
	tatual = C2D2_TempoSistema();
	// Calcula a diferença
	unsigned long diferenca = tatual-tinicial;
	// Desenha o fundo de 144x32
	C2D2P_RetanguloPintado(x, y, x+91, y+31, 0,0,0);
	C2D2P_Retangulo(x, y, x+91, y+31, 255,255,255);
	// Calcula os tempos
	int minutos=0, segundos=0, centesimos=0;
	if(diferenca <=116000)
	{
		minutos = (tempo-diferenca)/60000;
		segundos = ((tempo-diferenca)%60000)/1000;
		centesimos = ((tempo-diferenca)%1000)/10;
	}
	sprintf(texto, "%02i:%02i:%02i", minutos, segundos, centesimos);
	C2D2_DesenhaTexto(fdigital, x+8, y+8, texto, C2D2_TEXTO_ESQUERDA);
	// Retorna o tempo
	return diferenca;
}
Beispiel #2
0
void BarraCarregamento(int carregados, int total)
{
	// Calcula a cor
	int cor = 255*carregados/total;
	C2D2_LimpaTela();
	// A barra tem 600 pontos de largura. Desenha o contorno primeiro
	C2D2P_Retangulo(95, 270, 705, 330, 255-cor, cor, 0);
	// DEsenha a barra proporcional
	C2D2P_RetanguloPintado(100, 275, 100+600*carregados/total , 325, 255-cor, cor, 0);
	C2D2_Sincroniza(C2D2_FPS_PADRAO);
}
Beispiel #3
0
void Shutar::Draw()
{
	C2D2_LimpaTela(); 

	switch (GameState)
	{
	case 1:
		//Desenha Splash
		C2D2_DesenhaSprite(menu, 0, 0, 0); 

		
		break;

	case 2:
	{//Desenha GAME
		//C2D2_DesenhaSprite(jogorolando, 0, 0, 0);

		C2D2M_DesenhaCamadaMapa(mapa, 0, 0, 0, LARGURA_TELA, ALTURA_TELA); //desenha estrelas
		C2D2M_DesenhaCamadaMapa(mapa, 1, 0, 0, LARGURA_TELA, ALTURA_TELA);//desenha planetas
		C2D2M_DesenhaCamadaMapa(mapa, 2, 0, 0, LARGURA_TELA, ALTURA_TELA);//desenha nuvens





		ATOR_CentraMapa(nave, mapa, LARGURA_TELA, ALTURA_TELA);


		// Aplica as ocorrencias 
		for (int i = 0; i < numOcorrencias; i++)
		{
			ATOR_Desenha(ocorrencias[i], mapa, 0, 0);

		}

		// Aplica as inimigos 
		for (int i = 0; i < numinimigosBT; i++)
		{
			ATOR_Desenha(inimigos[i], mapa, 0, 0);
		}

		// Aplica as inimigos RB
		for (int i = 0; i < numinimigosRB; i++)
		{
			ATOR_Desenha(inimigosRB[i], mapa, 0, 0);

		}

		// Aplica as inimigos MR
		for (int i = 0; i < numinimigosMR; i++)
		{
			ATOR_Desenha(inimigosMR[i], mapa, 0, 0);

		}

		// Aplica as inimigos SH
		for (int i = 0; i < numinimigosSH; i++)
		{
			ATOR_Desenha(inimigosSH[i], mapa, 0, 0);

		}


		// Aplica as inimigos SH
		for (int i = 0; i < numinimigosSH; i++)
		{
			if (tirosInimigos[i] != 0)
				ATOR_Desenha(tirosInimigos[i], mapa, 0, 0);
		}



		if (tiro)
			ATOR_Desenha(tiro, mapa, 0, 0);

		if (bomba)
			ATOR_Desenha(bomba, mapa, 0, 0);

		ATOR_Desenha(nave, mapa, 0, 0);

		C2D2_DesenhaSprite(mouseTX, 0, mousePosX, mousePosY);

		C2D2_DesenhaSprite(hud_nergy, 0, LARGURA_TELA - 140, ALTURA_TELA - 34);

		//HUD 
		int coordXbarra = 894;
		int coordYbarra = 556;
		
		//int ent = coordXbarra + energytank;
		
		int ent = coordXbarra + nave->aux_int[3]/10;
		//static_cast<int>(coordXbarra)

		C2D2P_RetanguloPintado(coordXbarra, coordYbarra, ent, coordYbarra + 8, 0, 255, 0);

		switch (nave->vidas)
		{
			
		case 10:
			C2D2_DesenhaSprite(damage10, 0, 10, 540);
			break;
		case 9:
			C2D2_DesenhaSprite(damage9, 0, 10, 540);
			break;
		case 8:
			C2D2_DesenhaSprite(damage8, 0, 10, 540);
			break;
		case 7:
			C2D2_DesenhaSprite(damage7, 0, 10, 540);
			break;
		case 6:
			C2D2_DesenhaSprite(damage6, 0, 10, 540);
			break;
		case 5:
			C2D2_DesenhaSprite(damage5, 0, 10, 540);
			break;
		case 4:
			C2D2_DesenhaSprite(damage4, 0, 10, 540);
			break;
		case 3:
			C2D2_DesenhaSprite(damage3, 0, 10, 540);
			break;
		case 2:
			C2D2_DesenhaSprite(damage2, 0, 10, 540);
			break;
		case 1:
			C2D2_DesenhaSprite(damage1, 0, 10, 540);
			break;
		}


		break; 
	}
	case 3:
		//Desenha Creditos
		C2D2_DesenhaSprite(logoPUC, 0, 0, 0);


		break;
	case 4:
		//Desenha GameOver
		C2D2_DesenhaSprite(gameoverTela, 0, 0, 0);

		break;

	}

	
}
Beispiel #4
0
void Creditos()
{
	C2D2_Botao *teclado = C2D2_PegaTeclas();
	unsigned long int tempo=ttotal;
	C2D2_TrocaCorLimpezaTela(128,128,128);
	int deslocamento;
	// Desenha as retas no fundo
	int x, y, angulo=45;
	do
	{
		// Calcula a coordenada x,y da reta (diagonal tamanho 396, para círculo de raio 280)
		x = 280*cos(angulo*RAD);
		y = 280*sin(angulo*RAD);
		angulo=(angulo+2)%360;
		// Atualiza o deslocamento
		deslocamento = 600 - (1612.0*(tempo-ttotal))/11700;
		C2D2_LimpaTela();
		// Desenha as retas
		C2D2P_Linha(400+x, 300-y, 400-x, 300+y, 0, 0, 128);
		C2D2P_Linha(400-x, 300-y, 400+x, 300+y, 0, 0, 128);
		C2D2_DesenhaTexto(fpequeno, 400, deslocamento, "Programação e Gráficos", C2D2_TEXTO_CENTRALIZADO);
		C2D2_DesenhaTexto(fsistema, 400, deslocamento+32, "Paulo V. W. Radtke", C2D2_TEXTO_CENTRALIZADO);
		C2D2_DesenhaTexto(fpequeno, 400, deslocamento+196, "Música", C2D2_TEXTO_CENTRALIZADO);
		C2D2_DesenhaTexto(fsistema, 400, deslocamento+228, "2nd Reality", C2D2_TEXTO_CENTRALIZADO);
		C2D2_DesenhaTexto(fpequeno, 400, deslocamento+292, "por Purple Motion", C2D2_TEXTO_CENTRALIZADO);
		C2D2_DesenhaTexto(fpequeno, 400, deslocamento+424, "Agradecimentos", C2D2_TEXTO_CENTRALIZADO);
		C2D2_DesenhaTexto(fsistema, 400, deslocamento+456, "BCS", C2D2_TEXTO_CENTRALIZADO);
		C2D2_DesenhaTexto(fsistema, 400, deslocamento+520, "Mel", C2D2_TEXTO_CENTRALIZADO);
		C2D2_DesenhaTexto(fsistema, 400, deslocamento+584, "Pio", C2D2_TEXTO_CENTRALIZADO);
		C2D2_DesenhaTexto(fpequeno, 400, deslocamento+748, "Copywrong 2008", C2D2_TEXTO_CENTRALIZADO);
		C2D2_DesenhaTexto(fpequeno, 400, deslocamento+780, "Quase nenhum direito reservado.", C2D2_TEXTO_CENTRALIZADO);
		// termina em 812. 
		//tem que pular 600 pontos no começo, mais 100 de lambuja pra cada lado. total de 1612 pontos
		tempo=RelogioDigital(692,552);
		C2D2_Sincroniza(C2D2_FPS_PADRAO);
	}
	while(tempo-ttotal < 11700 && !teclado[C2D2_ESC].pressionado && !teclado[C2D2_ENCERRA].pressionado);
	// Apaga a tela com barras pretas
	deslocamento=0;
	do
	{
		// Calcula o quanto deceu na tela
		deslocamento = (300.0*(tempo-ttotal-11700))/500;
		// Calcula a coordenada x,y da reta (diagonal tamanho 396, para círculo de raio 280)
		x = 280*cos(angulo*RAD);
		y = 280*sin(angulo*RAD);
		angulo=(angulo+2)%360;
		C2D2_LimpaTela();
		// Desenha as retas
		C2D2P_Linha(400+x, 300-y, 400-x, 300+y, 0, 0, 128);
		C2D2P_Linha(400-x, 300-y, 400+x, 300+y, 0, 0, 128);
		C2D2P_RetanguloPintado(0, 0, 799, deslocamento, 0, 0, 0);
		C2D2P_RetanguloPintado(0, 600-deslocamento, 799, 599, 0, 0, 0);
		tempo=RelogioDigital(692,552);
		C2D2_Sincroniza(C2D2_FPS_PADRAO);
	}
	while(tempo-ttotal < 12200 && !teclado[C2D2_ESC].pressionado && !teclado[C2D2_ENCERRA].pressionado);


	ttotal += 12200;	
}