int main () { float s0 = 3.0, v0 = 10.0, a = 5.0, t = 3.0; float s, v; movimento (s0, v0, a, t, &s, &v); printf ("%f %f\n", s, v); //system ("pause"); return EXIT_SUCCESS; }
void* atualizaMapa(void *args) { while(inicio == 0){ } limparDados(); while(fim == 0) { if(libera_atualizacao == 1) { movimento(); } } }
int main(int argc, char **argv){ ALLEGRO_DISPLAY *display = NULL; ALLEGRO_EVENT_QUEUE *event_queue = NULL; ALLEGRO_TIMER *timer = NULL; ALLEGRO_BITMAP *seletor = NULL; float tamanho = 25; float espacamento = SELETOR_SIZE + 19; float seletor_x = 1174; float seletor_y = 40; bool key[4] = { false, false, false, false }; bool redraw = true; bool doexit = false; float posicao = 0; int mapa[770][3]; bool envio[4] = { false, false, false, false }; //Inicia o allegro al_init(); al_init_image_addon(); al_install_keyboard(); // Inicialização do add-on para uso de fontes al_init_font_addon(); al_init_ttf_addon(); inicializaBitmaps(); lerConf(mapa); //Cria a lista de eventos event_queue = al_create_event_queue(); //Cria o timer timer = al_create_timer(1.0 / FPS); //Cria a janela display = al_create_display(SCREEN_W, SCREEN_H); //Limpa a janela com a cor preta al_clear_to_color(al_map_rgb(0, 0, 0)); //Carrega a imagem de fundo na variável background = al_load_bitmap("img/fundo.png"); //Desenha a imagem de fundo na posição (0,0) al_draw_bitmap(background, 0, 0, 0); //Carrega a imagem do seletor na variável seletor = al_load_bitmap("img/selecao.png"); //Desenha o seletor na posição (1174,40) al_draw_bitmap(seletor, 1174, 40, 0); desenhaMapa(mapa, envio); //Registra os eventos al_register_event_source(event_queue, al_get_display_event_source(display)); al_register_event_source(event_queue, al_get_timer_event_source(timer)); al_register_event_source(event_queue, al_get_keyboard_event_source()); al_flip_display(); //Inicia o timer al_start_timer(timer); //Inicia contagem de tempo para a pergunta aparecer initClock(); //While do jogo while(!doexit){ //Aguarda o evento ALLEGRO_EVENT ev; al_wait_for_event(event_queue, &ev); //Se der o tempo do timer, verifica qual tecla foi pressionada e se é possível se mover para a posição de destino if(ev.type == ALLEGRO_EVENT_TIMER){ if(key[KEY_LEFT] && (posicao == 1 || posicao == 3) && (janela_aberta == 0)) { seletor_x -= espacamento; if(posicao == 1) posicao = 0; else posicao = 2; } if(key[KEY_RIGHT] && (posicao == 0 || posicao == 2) && (janela_aberta == 0)) { seletor_x += espacamento; if(posicao == 0) posicao = 1; else posicao = 3; } if(key[KEY_UP] && (posicao == 2 || posicao == 3) && (janela_aberta == 0)) { seletor_y -= espacamento; if(posicao == 2) posicao = 0; else posicao = 1; } if(key[KEY_DOWN] && (posicao == 0 || posicao == 1) && (janela_aberta == 0)) { seletor_y += espacamento; if(posicao == 0) posicao = 2; else posicao = 3; } redraw = true; } //Se a janela for fechada, termina o jogo else if(ev.type == ALLEGRO_EVENT_DISPLAY_CLOSE) { break; } //Se o evento for um tecla pressionada, seta a variável dessa tecla para "true" (pressionada) else if(ev.type == ALLEGRO_EVENT_KEY_DOWN) { switch(ev.keyboard.keycode) { case ALLEGRO_KEY_LEFT: key[KEY_LEFT] = true; break; case ALLEGRO_KEY_RIGHT: key[KEY_RIGHT] = true; break; case ALLEGRO_KEY_UP: key[KEY_UP] = true; break; case ALLEGRO_KEY_DOWN: key[KEY_DOWN] = true; break; } } //Se o evento for um tecla solta, seta a variável dessa tecla para "false" (caso seja Esc, encerra o programa) else if(ev.type == ALLEGRO_EVENT_KEY_UP) { switch(ev.keyboard.keycode) { case ALLEGRO_KEY_LEFT: key[KEY_LEFT] = false; break; case ALLEGRO_KEY_RIGHT: key[KEY_RIGHT] = false; break; case ALLEGRO_KEY_ESCAPE: doexit = true; break; case ALLEGRO_KEY_UP: key[KEY_UP] = false; break; case ALLEGRO_KEY_DOWN: key[KEY_DOWN] = false; break; case ALLEGRO_KEY_ENTER: if (janela_aberta == 0){ if(posicao == 0) envio[VERMELHO] = true; else if(posicao == 1) envio[AZUL] = true; else if(posicao == 2) envio[VERDE] = true; else if(posicao == 3) envio[AMARELO] = true; } } } //Redesenha o jogo if(redraw && al_is_event_queue_empty(event_queue)){ redraw = false; al_draw_bitmap(background, 0, 0, 0); desenhaMapa(mapa, envio); movimento(mapa); if (janela_aberta == 0){ if (checkClock()){ janela_aberta = 1; } }else{ al_draw_bitmap(perguntas, 0, 0, 0); al_draw_textf(font, al_map_rgb(255, 255, 255), SCREEN_W / 2, 250, ALLEGRO_ALIGN_CENTRE, "%s", texto); printf("check\n"); initClock(); } al_draw_bitmap(seletor, seletor_x, seletor_y, 0); al_flip_display(); } } //Destrói os objetos al_destroy_bitmap(background); al_destroy_bitmap(seletor); al_destroy_timer(timer); al_destroy_display(display); al_destroy_event_queue(event_queue); return 0; }