Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[SDL] Zamazywanie tła przy przesuwaniu postaci.

Ostatnio zmodyfikowano 2010-03-10 21:45
Autor Wiadomość
Bartaz
» 2010-03-10 16:29:06
P-14831
Next
Temat założony przez niniejszego użytkownika
» 2010-03-10 21:45:23
Ok już działa thx :D

przyjrzałem się kodu i zmieniłem na:
C/C++
#include<SDL.h>

SDL_Surface * ekran = NULL;
SDL_Surface * tlo = NULL;
SDL_Surface * gracz = NULL;

Uint8 * keystate = SDL_GetKeyState( NULL );

SDL_Rect graczDest;
SDL_Rect tloDest;

SDL_Event event;

int x, y, a, b;
bool quit = false;

int main( int argc, char * args[] )
{
    SDL_Init( SDL_INIT_EVERYTHING );
   
    ekran = SDL_SetVideoMode( 1024, 768, 32, SDL_SWSURFACE );
    tlo = SDL_LoadBMP( "bg.bmp" );
    gracz = SDL_LoadBMP( "player.bmp" );
   
    SDL_SetColorKey( gracz, SDL_SRCCOLORKEY, SDL_MapRGB( gracz->format, 0x00, 0x00, 0x00 ) );
   
    while( !quit )
    {
        while( SDL_PollEvent( & event ) )
        {
            if( event.type == SDL_QUIT )
            {
                quit = true;
            }
        }
        if( keystate[ SDLK_UP ] )
        {
            y = y - 10;
        }
        if( keystate[ SDLK_DOWN ] )
        {
            y = y + 10;
        }
        if( keystate[ SDLK_RIGHT ] )
        {
            x = x + 10;
        }
        if( keystate[ SDLK_LEFT ] )
        {
            x = x - 10;
        }
       
        graczDest.x = x;
        graczDest.y = y;
        tloDest.x = a;
        tloDest.y = b;
       
        SDL_BlitSurface( tlo, NULL, ekran, & tloDest );
        SDL_BlitSurface( gracz, NULL, ekran, & graczDest );
       
        SDL_Flip( ekran );
        SDL_Flip( gracz );
        SDL_Flip( tlo );
       
    }
    SDL_Quit();
    return 0;
}
Czyli to poprostu przez odświeżanie :D SDL_Flip(powierzchnia);
P-14878
1 « 2 »
Poprzednia strona Strona 2 z 2