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.
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()
Solo che facendo in questo modo l'immagine appare a "intermittenza", non so come spiegarlo, provate a eseguire il codice e capirete cosa intendo.
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??