Example #1
0
void Desenha()
{
        char imageTela[30]="./texturas/abertura3.bmp";
        DESENHA_TEXTO(330,180,imageTela);
        if(ENTER==0)
        {
            desenha_textura(imageTela);
        }
        switch(ENTER)
        {
         case 1:
         glDisable(GL_TEXTURE_2D);
         glClear(GL_COLOR_BUFFER_BIT);

         char str1[7]= "JOGAR";
         char str2[7]= "AJUDA";
         char str3[7]= "SOBRE";
         char str4[6]= "SAIR";
         char str5[7]= "SCORE";
         char str6[7]= "VIDAS";
         char nomeimag[]="./texturas/Menu.bmp";

         glColor3f(1,1,1);
         glClear(GL_COLOR_BUFFER_BIT);
         glEnable(GL_TEXTURE_2D);
         printTexture(nomeimag);
         glLoadIdentity();

         glColor3f(0,0,1);
         DESENHA_TEXTO(130,90,str1);
         DESENHA_TEXTO(130,75,str2);
         DESENHA_TEXTO(130,60,str3);
         DESENHA_TEXTO(130,45,str4);

         if(esc == 0)
         {
             glColor3f(1.0f,0.0f,0.0f);
             ghost_abertura(0);
             glColor3f(0.0f,1.0f,1.0f);
             ghost_abertura(15);
             glColor3f(1.0f,0.6f,0.0f);
             ghost_abertura(30);
             glColor3f(1.0f,0.0f,1.0f);
             ghost_abertura(45);
         }
         else
         {
             glColor3f(0.0f,0.0f,1.0f);
             ghost_abertura(0);
             glColor3f(0.0f,0.0f,1.0f);
             ghost_abertura(15);
             glColor3f(0.0f,0.0f,1.0f);
             ghost_abertura(30);
             glColor3f(0.0f,0.0f,1.0f);
             ghost_abertura(45);
         }
         Bola_Pacman(215,101);
         Desenha_Pacman_abertura();
         glColor3f(1.0f,1.0f,0.0f);
         Desenha_esc_menu();
         Colisao();
         switch(esc_menu)
         {
             case 1:
	             glColor3f(1,1,1);
                 glClear(GL_COLOR_BUFFER_BIT);
                 glDisable(GL_TEXTURE_2D);
                 Labirinto();
                 glColor3f(1.0f,0.0f,0.0f);
                 ghost_BLINKY(0,0);
                 glColor3f(0.0f,1.0f,1.0f);
                 ghost_INKY(18,-30);
                 glColor3f(1.0f,0.0f,1.0f);
                 ghost_PINKY(0,-30);
                 glColor3f(1.0f,0.6f,0.0f);
                 ghost_CLYDE(-18,-30);
                 Desenha_Pacman();
                 glutPostRedisplay();
                 Desenha_life(VIVO,VIVO);
                 glColor3f(1,1,1);
                 DESENHA_TEXTO(360,180,str5);
                 DESENHA_TEXTO(360,150,str6);


             break;
             case 2:
                  Desenha_ajuda();
             break;
             case 3:
                  Desenha_sobre();
             break;
             case 4:
                 exit(0);
             break;
         }
         glutSwapBuffers();
         break;
    }
}
Example #2
0
int main(){
   ALLEGRO_DISPLAY *display;

	const float FPS = 60.0;
	//const float frameFPS = 15.0;
	const int largura = 800;
	const int altura = 600;
     Game *g = new Game();


	enum Direction { UP, DOWN, RIGHT, LEFT };

	if (!al_init()) {
		al_show_native_message_box(NULL, NULL, NULL, "Não pode iniciar o Allegro", NULL, 0);

		return -1;
	}

	// Setando tipo de janela a ser criada
	//al_set_new_display_flags(ALLEGRO_FULLSCREEN_WINDOW);
	//al_set_new_display_flags(ALLEGRO_OPENGL);
	//al_set_new_display_flags(ALLEGRO_OPENGL);
	al_set_new_display_flags(ALLEGRO_WINDOWED);

	display = al_create_display(largura, altura);

	al_init_primitives_addon();
	al_install_keyboard();
	al_init_image_addon();



	ALLEGRO_KEYBOARD_STATE keyState;
	ALLEGRO_BITMAP *player = NULL;
	al_set_window_position(display,200,100);


	if (!display) {
		al_show_native_message_box(display, "Olá", "Opções do display", "Mensage,", NULL, 0);
	}


	// Mostra na tela o que está no buffer do display
	al_flip_display();

	// ***** RECEBENDO EVENTOS *****


	ALLEGRO_EVENT_QUEUE *event_queue = al_create_event_queue();

	// registrando o teclado na fila de eventos
	al_register_event_source(event_queue, al_get_keyboard_event_source());

	// timer event
	ALLEGRO_TIMER *timer = al_create_timer( 1.0 / FPS );
	//ALLEGRO_TIMER *frametimer = al_create_timer( 1.0 / frameFPS );
	al_register_event_source(event_queue, al_get_timer_event_source(timer));
	//al_register_event_source(event_queue, al_get_timer_event_source(frametimer));


	// Game loop
	bool finalizar = false;
	bool draw = false;
	bool comer = false;
	int x = 10, y = 10;
	float velocidade = 3;
	Direction direcao = DOWN;

	srand(time(NULL)*rand());

	x = rand() % largura;
	y = rand() % altura;

    int comida_x = rand() % largura;
    int comida_y = rand() % altura;
    int cont=0;




	al_start_timer(timer);
	//al_start_timer(frametimer);

	ALLEGRO_COLOR azul = al_map_rgb(0, 0, 255);
	ALLEGRO_COLOR vermelho = al_map_rgb(255, 0, 0);

	while (!finalizar) {


		ALLEGRO_EVENT events;
		al_wait_for_event(event_queue, &events);
		al_get_keyboard_state(&keyState);


		if (events.type == ALLEGRO_EVENT_KEY_DOWN) {
			switch (events.keyboard.keycode) {
				case ALLEGRO_KEY_DOWN:
					direcao = DOWN;
					break;
				case ALLEGRO_KEY_UP:
					direcao = UP;
					break;
				case ALLEGRO_KEY_RIGHT:
					direcao = RIGHT;
					break;
				case ALLEGRO_KEY_LEFT:
					direcao = LEFT;
					break;
				case ALLEGRO_KEY_ESCAPE:
					finalizar = true;
					break;


			}
		}

		if (events.type == ALLEGRO_EVENT_TIMER) {
			switch (direcao) {
				case DOWN:
					y += velocidade;
					if(y>altura-20){
                        y =altura-20;
                        finalizar = true;
                    }

					break;
				case UP:
					y -= velocidade;
					if(y<0){
                        y=0;
                    finalizar = true;
                    }
					break;
				case RIGHT:
					x += velocidade;
					if(x > largura-20){
                        x=largura-20;
                        finalizar = true;
                    }
					break;
				case LEFT:
					x -= velocidade;
					if(x<0){
                        x=0;
                    finalizar = true;
                    }
					break;
			}

			draw = true;

		}if(Colisao(comida_x, comida_y, x, y, 20, 20)){
                    cont++;
                    if(direcao == DOWN)
                        comer = true;
                        //y -= velocidade;
                    else if(direcao == LEFT)
                        //x += velocidade;
                        comer = true;
                    else if(direcao == RIGHT)
                        //x -= velocidade;
                        comer = true;
                    else if(direcao ==UP)
                        //y +=velocidade;
                        comer = true;

                 }

		if (draw) {
            draw = false;
			// desenha retanguo 20x20 na posicao x,y nova
			//g->draw();



			if(comer){
			comer = false;
			al_draw_filled_rectangle(x, y, x+20, y+20, azul);
			al_draw_filled_circle(comida_x,comida_y, 5, vermelho);
			al_flip_display();
			al_clear_to_color(al_map_rgb(0,0,0));

            comida_x = rand() % largura;
            comida_y = rand() % altura;
			al_draw_filled_circle(comida_x,comida_y, 5, vermelho);
            al_clear_to_color(al_map_rgb(0,0,0));
            if(cont>=3){
                velocidade++;
                cont=0;
            }
			//al_flip_display();
			//al_clear_to_color(al_map_rgb(0,0,0));

            }else{
            al_draw_filled_circle(comida_x,comida_y, 5, vermelho);
            al_draw_filled_rectangle(x, y, x+20, y+20, azul);
			al_flip_display();
			al_clear_to_color(al_map_rgb(0,0,0));
            }// Mostra na tela o que está no buffer do display

			// preenche o buffer com preto
			al_clear_to_color(al_map_rgb(0,0,0));
		}

	}


	al_destroy_display(display);
	al_destroy_timer(timer);
	al_destroy_event_queue(event_queue);
	return  0;
}
Example #3
0
//Chama o desenho
void Desenha(void)
{
     
     
	//Limpa a janela de visualização com a cor de fundo especificada 
    if(lado == 0) 
    {
    tempo = 0;  //Nivel 1, velocidade dos carros   
    glClear(GL_COLOR_BUFFER_BIT);
    Pista();
    Colisao();
    Onibus();
    Caminhao();
    Caminhao2();
    Sapo2();
    glutSwapBuffers();
    }
    if(lado == 1) 
    {
    tempo = 30;  //Nivel 1, velocidade do tronco
    
    glClear(GL_COLOR_BUFFER_BIT);
    Pista();
    Colisao2();
    Onibus();
    Caminhao();
    Caminhao2();
    Sapo();
    
    glutSwapBuffers();  
    }  
    
    if(lado == 2) 
    {
    tempo = 55;  //Nivel 2, velocidade dos carros        
    glClear(GL_COLOR_BUFFER_BIT);
    Pista();
    Colisao();
    Onibus();
    Caminhao();
    Caminhao2();
    Sapo2();
    glutSwapBuffers();
    }
    if(lado == 3) 
    {
    tempo = 45;  //Nivel 2, velocidade do tronco       
    glClear(GL_COLOR_BUFFER_BIT);
    Pista();
    Colisao2();
    Onibus();
    Caminhao();
    Caminhao2();
    Sapo();
        }      
 if(lado == 4) //Final
    {       
    glClear(GL_COLOR_BUFFER_BIT);
    Comentarios1();
    glutSwapBuffers();  
    }  
             
}