== ybola+44){ ybola--; ybola--; } } /*Coordadenadas que define a coluna do obstaculo*/ if(xbola+35 >= rand2 && xbola <= rand2+128){ /*Coordenadas que definem o tamanho da bitmap obstaculo, onde ira acontecer a colisao da bolinha*/ if(yb2 == ybola+44){ ybola--; ybola--; } } /*Coordadenadas que define a coluna do obstaculo */ if(xbola+35 >= rand3 && xbola <= rand3+128){ /*Coordenadas que definem o tamanho da bitmap obstaculo, onde ira acontecer a colisao da bolinha*/ if(yb3 == ybola+44){ ybola--; ybola--; } } /*Atribuicao do movimento (e nao) das imagens*/ draw_sprite(buffer,fundo, 0, y--); draw_sprite(buffer,bola, xbola, ybola++); draw_sprite(buffer,obs,rand1, yb1--); draw_sprite(buffer,obs,rand2, yb2--); draw_sprite(buffer,obs,rand3, yb3--); draw_sprite(screen, buffer, 0, 0); blit(buffer,screen,0,0,0,0,600,550); /*Comando no qual ira rodar o score, a pontuacao e feita de acordo com que o jogo for rodando, quanto mais voce jogar, mais a pontuacao aumentara*/ text_mode(-1); if (ybola = ybola++){ score = score + 1; textprintf_ex(screen,font,10,20,makecol(255,255,255),-1,"Pontos: %i",score); } /*Comando no qual fara com que ao decorrer do jogo, a velocidade seja aumentada, para ser mais dificultoso*/ if (y == -1200){ y = 0; j = (j-0.005); } /*Velocidade do jogo*/ rest(j); /*Comando no qual define se o x da bolinha for menor que 0, ela retornara em 600, ou seja, quando ela sumir do lado esquerdo ela aparecera no lado direito.*/ if(xbola < 0){ xbola = 600; } /*Comando no qual define se o x da bolinha for maior que 600, ela retornara em 0, ou seja, quando ela sumir do lado direito ela aparecera no lado esquerdo.*/ if (xbola > 600){ xbola = 0; } /*Comando no qual faz a bola se mover paraa direita e para a esquerda*/ if(key[KEY_RIGHT]) xbola++,xbola++; if(key[KEY_LEFT]) xbola--,xbola--; /*Faz com que a bola quando chegar la em cima, faca o jogador perder o jogo*/ if(ybola == 0){ allegro_message("Game Over!"); break; } /*Faz com que a bola quando chegar la em baixo, faca o jogador perder o jogo*/ if(ybola == 550){ allegro_message("Game Over!"); break; } } } int main() { init(); install_keyboard(); set_color_depth(32); set_gfx_mode(GFX_AUTODETECT_WINDOWED,600,550,0,0); /*Chamada das imagens que irao compor o menu*/ BITMAP *menu; menu = load_bitmap("menu.bmp",NULL); BITMAP *bt_jogar; bt_jogar = load_bitmap("botao_jogar.bmp", NULL); BITMAP *bt_sair; bt_sair = load_bitmap("botao_sair.bmp", NULL); BITMAP *buffer; buffer = create_bitmap(600,550); show_mouse(screen); MIDI *mid = load_midi("et.mid"); /*Comando no qual sera montado o menu, e chamar a funcao rodar_jogo*/ while(!key[KEY_ESC]) { draw_sprite(buffer, menu, 0,0); draw_sprite(buffer, bt_jogar, 200,375); draw_sprite(buffer, bt_sair, 200,430); play_midi(mid,1000); /*Comando no qual se atribui valores para determinar a area do clique do "botao jogar"*/ if (mouse_b & 1){ if (mouse_x>200 && mouse_x<400 && mouse_y >375 && mouse_y<405){ /*Chamada da funcao que faz o jogo rodar.*/ rodar_jogo(); } } /*Comando no qual se atribui valores para determinar a area do clique do "botao sair"*/ if (mouse_b & 1){ if(mouse_x>200 && mouse_x<400 && mouse_y>430 && mouse_y<460){ /*Chamada da funcao que faz sair do jogo.*/ exit(1);} } blit(buffer,screen,0,0,0,0,600,550); } deinit(); /* return 0 para finalizar o programa */ return 0; } END_OF_MAIN() /* macro para manter a vantagem de poder ser compilada em varias plataformas. Obs: coloquei o comentario depois, para nao dar erro. */ void init() { /* declaracao de 2 variaveis, uma para guarder a profundidade de cores suportada