Salve, prima di scrivere la domanda vorrei chiarire che sono un principiante in ambito di programmazione allegro.h ; dunque cercate di essere clementi per le mie domande semplici.
Dunque... vorrei stampare un immagine a schermo. Ho utilizzato l'istruzione blit.
Solo che facendo in questo modo l'immagine appare a "intermittenza", non so come spiegarlo, provate a eseguire il codice e capirete cosa intendo.codice:#include <allegro.h> int main() { PALETTE pal; int x = 100; int y = 100; allegro_init(); BITMAP* ciao = create_bitmap (100, 100); install_keyboard(); set_color_depth(16); set_gfx_mode(GFX_AUTODETECT_WINDOWED, 300, 300, 0, 0); while (!key[KEY_ESC]) { ciao = load_bitmap ("immagine.bmp", pal); masked_blit(ciao, screen, 0,0, x, y, ciao->w, ciao->h); if (key[KEY_UP]) { y++; } clear_bitmap(screen); masked_blit(ciao, screen, 0,0, x, y, ciao->w, ciao->h); rest(1); } return 0; } END_OF_MAIN()
Ora, per risolvere il problema ho provato a togliere
clear_bitmap(screen);
ed effettivamente l'intermittenza cessa, però quando la figura si sposta lascia una scia.
Come posso risolvere il problema??

Rispondi quotando