Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [c++] come muovere immagini senza intermittenza

    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??
    tutto si può fare, bisogna solo volerlo
    http://italybrain.altervista.org/

  2. #2
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    Normalmente si usa una copia in memoria della bitmap su cui disegni cio che vuoi e poi la copi su schermo
    Per gli Spartani e Sparta usa spartan Il mio github

  3. #3
    cioè? mi puoi dire la sintassi?
    tutto si può fare, bisogna solo volerlo
    http://italybrain.altervista.org/

  4. #4
    Non è che si può sempre chiedere la "pappa pronta" studiati le funzioni di creazione di bitmap di allegro, da lì in poi è tutta in discesa (per ulteriori informazioni sulla tecnica in questione cerca "double buffering")
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.