Oppure

Loading
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);

}

A cura di: Oligoatria