Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Guida SDL - Muovi l immagine sullo schermo

Guida SDL

Capitolo 7° - Muovi l immagine sullo schermo

<< Precedente Prossimo >>
Muovi l'immagine sullo schermo



Arrivati a questo punto, per riuscire a muovere l'immagine interessata è sufficiente aggiungere due punti principali:

La gestione degli eventi da tastiera.. mi spiego:

Quando premo la freccia destra, sposto l'immagine a destra, e così via;

L'aggiornamento della Superficie e poi della visualizzazione.



Prima di proseguire ricordo che per indicare la posizione dell'immagine abbiamo utilizzato la variabile dst (.x e .y).



Qui di seguito riporto il codice del ciclo di gioco modificato ( le parti nuove sono in grassetto )





for( ; ; )    // ciclo principale di gioco

{

    SDL_Delay(frame_skip);        // rallenta il ciclo di RunTime



    if (SDL_PushEvent(&test_event) == 0)       //

    {

        SDL_PollEvent(&event);

            

        /* gestione degli eventi da tastiera */

        keys = SDL_GetKeyState(NULL);   // aggiorna la situazione attuale dei

                                                                                        // tasti premuti o no

        if ( keys[SDLK_ESCAPE] == SDL_PRESSED )   // esco dal ciclo su

                                                                                                            // pressione di Escape

            break;

                

        if ( keys[SDLK_UP] == SDL_PRESSED )     dst.y--;

        if ( keys[SDLK_DOWN] == SDL_PRESSED )   dst.y++;

        if ( keys[SDLK_LEFT] == SDL_PRESSED )   dst.x--;

        if ( keys[SDLK_RIGHT] == SDL_PRESSED )  dst.x++;

    }



    SDL_UnlockSurface(screen);                          // sblocco screen

    SDL_BlitSurface(image, NULL, screen, &dst);

    SDL_LockSurface(screen);                             // blocco screen



    SDL_UpdateRect(screen, 0, 0, 0, 0);

}

<< Precedente Prossimo >>
A proposito dell'autore

Laurea in Ingegneria Informatica. Dottorato in Neuroingegneria. Conosco i linguaggi C/C++, Java, Delphi, jsp e servlet, PHP, SQL, Bash, R, Matlab, Lisp. Esperienza con le librerie SDL e OpenGL, Ogre3D e Ode, MFC e CLR, Winsock. Conoscenza base di: VB, Assembly.