Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
Guida SDL - Reblitting. Movimento immagine su sfondo statico

Guida SDL

Capitolo 8° - Reblitting. Movimento immagine su sfondo statico

<< Precedente Prossimo >>
Reblitting: muovere un'immagine su uno sfondo statico



Con l'esigenza di uno sfondo caricato da una BMP sorgono le prime difficoltà.

Per poter muovere la nostra immagine su uno sfondo statico è necessario, ad ogni ciclo, disegnare prima lo sfondo, poi l'immagine interessata (ricordo che l'UpdateRect deve essere effettuato una sola volta per ogni ciclo, altrimenti si ottengono brutti effetti visivi (1)). Per ora questo è tutto ciò che ci basta sapere; nel prossimo capitolo analizzeremo il problema del rallentamento dell'applicazione, ma prima è necessario sperimentare.



Carichiamo in una nuova superficie la nostra BMP di sfondo;

    SDL_Surface *sfondo;

        sfondo = SDL_LoadBMP( "sfondo1.bmp" );  // NEW



Prima del blit dell'immagine da muovere, nel ciclo di gioco,  ridisegnamo lo sfondo.

Nell'esempio: src==NULL: disegniamo l'intero sfondo

          dst==NULL: lo sfondo verrà disegnato da (0,0)



SDL_BlitSurface(sfondo, NULL, screen, NULL);   // NEW









(1) Le librerie SDL utilizzano automaticamente un algoritmo per sincronizzare l'
UpdateRect con l'aggiornamento fisico dello schermo. Se nel ciclo di gioco ci fossero più aggiornamenti visivi della superficie (SDL_UpdateRect o anche SDL_Flip, nel caso del DOUBLE_BUFFERING) si visualizzerebbero effetti visivi che renderebbero l'applicazione normalmente inutilizzabile.

<< Precedente Prossimo >>
A proposito dell'autore

Laurea in Ingegneria Informatica. Conosco i linguaggi C/C++, Java, Delphi, jsp e servlet, php, SQL,Bash,R,Matlab; mi sono interessato di: librerie SDL e OpenGL, Ogre3D e Ode, MFC e CLR, winsock. Conoscenza base di: VB, Assembly. Ottenuti i certificati CCNA 1,2,3,4° semestre.