[SDL] Zamazywanie tła przy przesuwaniu postaci.
Ostatnio zmodyfikowano 2010-03-10 21:45
Bartaz |
» 2010-03-10 16:29:06 |
|
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: #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); |
|
1 « 2 » |