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??