Ir ao conteúdo
  • Cadastre-se

Ryan Marques de Castro

Membro Júnior
  • Posts

    4
  • Cadastrado em

  • Última visita

Reputação

3
  1. Opa Boa noite , estou a realizar um projeto usando Allegro 5. na parte de movimentar o sprite eu consegui fazer mas ele não apaga os sprites anteriores. segue imagens e códigos. void moviment_pac::direcao_personagem(ALLEGRO_EVENT ev,ALLEGRO_BITMAP* movi,int* x,int* y){ int i = 0, j = 0; int tempo, sprite = 0, fator = 1; if(ev.type == ALLEGRO_EVENT_KEY_DOWN){ switch(ev.keyboard.keycode){ case ALLEGRO_KEY_UP: tecla[KUP] = true; if(*y <= 32.0) *y+=32; else *y-=32; sprite=2; //al_draw_bitmap_region(movi,0,2*32,32,32,*x,*y,0); break; case ALLEGRO_KEY_DOWN: tecla[KDOWN] = true; if(*y >= 672 - 32 - 32 ) *y-=32; else *y+=32; sprite = 4; //al_draw_bitmap_region(movi,0,4*32,32,32,*x,*y,0); break; case ALLEGRO_KEY_RIGHT: tecla[KRIGHT] = true; if(*x >= 672 - 32 - 32) *x-=32; else *x+=32; sprite = 3; //al_draw_bitmap_region(movi,0,3*32,32,32,*x,*y,0); break; case ALLEGRO_KEY_LEFT: tecla[KLEFT] = true; if(*x <= 32) *x+=32; else *x-=32; sprite = 1; //al_draw_bitmap_region(movi,0,1*32,32,32,*x,*y,0); break; } al_draw_bitmap_region(movi,0,sprite*32,32,32,*x,*y,0); } else if(ev.type == ALLEGRO_EVENT_KEY_UP){ switch(ev.keyboard.keycode){ case ALLEGRO_KEY_RIGHT: tecla[KRIGHT] = false; break; case ALLEGRO_KEY_LEFT: tecla[KLEFT] = false; break; case ALLEGRO_KEY_UP: tecla[KUP] = false; break; case ALLEGRO_KEY_DOWN: tecla[KDOWN] = false; break; } } } //Código de movimentar //Main.cpp while(!fim_loop){ //printf("pos_x: %.2f pos_y: %.2f\n", posi_x,posi_y); tempo = al_get_timer_count(FPS); al_wait_for_event(fila_events, &event); //qual evento if(event.type == ALLEGRO_EVENT_TIMER){ test = true; } if(event.type == ALLEGRO_EVENT_KEY_DOWN){ /*pacm = al_load_bitmap("Sprites/Personagens/Voltorb/VoltorbD.png"); movi.movi_direita(pacm,event); pacm = al_load_bitmap("Sprites/Personagens/Voltorb/VoltorbE.png"); movi.movi_esquerda(pacm,event); pacm = al_load_bitmap("Sprites/Personagens/Voltorb/VoltorbB.png"); movi.movi_cima(pacm,event); pacm = al_load_bitmap("Sprites/Personagens/Voltorb/VoltorbF1.png"); movi.movi_baixo(pacm,event);*/ //movi.direcao_personagem(event,pacm,&x,&y); movi.direcao_personagem(event,pacm,&x,&y); switch(event.keyboard.keycode){ case ALLEGRO_KEY_ENTER: teclas[KEY_ENTER] = true; ///quando apertado, vira true. movi.startMap(mapa); // movi.TImprimir(); if(music != NULL){ al_destroy_audio_stream(music); ///musica do menu para. music = NULL; } al_clear_to_color(al_map_rgb(0,0,0)); al_draw_bitmap(fundo,0,0,0); al_draw_bitmap(borda,0,0,0); p.desenha_pilu(pilu); t.desenha_tijo(tijo); movi.teste_pac(pacm, &posi_x, &posi_y); break; default: break; } //se o evento é algo relacionado a alguma tecla apertada } else if(event.type == ALLEGRO_EVENT_DISPLAY_CLOSE || event.keyboard.keycode == ALLEGRO_KEY_ESCAPE){ fim_loop = true; ///clicando com no X; } if(test && al_is_event_queue_empty(fila_events)){ test = false; al_draw_bitmap(pacm,posi_x,posi_y,0); movi.startMap(mapa); al_flip_display(); } } Eu so fiz a colisão das bordas, ainda falta dos tijolos em si dentro do mapa, mas queria resolver esse problema de não apagar, por que o al_flip_display() era para estar realizando isso.
  2. Usa a função getch , da biblioteca conio.h , e faça um do{ } while();!
  3. A resposta é simples: Placas de vídeo Onboard vem em Pcs ou notebooks antigos , ou seja lentos , com uma memória cache inferior as de hoje , RAM muito lenta etc... E como essa placa já vem integrada IMPOSSÍVEL tira-lá ou seja deverá gastar um pouco mais de dinheiro. Off board você poderá personalizar a seu gosto e ter um melhor desempenho em games, programas pesados ex: AutoCAD , unreal engine etc... OBS: Esse é meu primeiro post aqui por isso está um pouco estranho , mas com o tempo aprendo a fazer posts mais organizados e bem mais detalhados Obrigado, Att Ryan M.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...