ly000 Temat założony przez niniejszego użytkownika |
[sdl]Przyśpieszenie pętli » 2011-12-20 19:41:28 Witam, gdy dodałem podwójne buforowanie do mego programu, bitmapy zaczęły się poruszać znacznie wolniej. Mogę zrobić tak żeby po wciśnięciu klawisza bitmapa poruszała się o 2 pixele a nie o jeden, ale wtedy straci na płynności. Jaki jest sposób, aby to przyśpieszyć? |
|
SeaMonster131 |
» 2011-12-20 20:07:15 Daj kod. |
|
akwes |
» 2011-12-20 20:15:27 Używasz timerów?
Bo wygląda na to że nie. |
|
ly000 Temat założony przez niniejszego użytkownika |
» 2011-12-20 21:59:55 Nie używam timerów, nie wiedziałem że w sdl one potrafią również przyśpieszać ;o Szukałem na google, i znalazłem jedynie SDL_Delay(10); ;/ Mógłby mnie ktoś nakierować? Oraz mój kod, w sumie to tylko lekko zmodyfikowany kod z kursu: #include <SDL.h>
SDL_Surface * ekran = NULL; SDL_Surface * cos = NULL;
SDL_Surface * tlo = NULL;
SDL_Rect LudekDestination;
SDL_Event zdarzenie;
Uint8 * keystate = SDL_GetKeyState( NULL ); int x, y; bool wyjscie = false; int main( int argc, char * args[] ) { SDL_putenv( "SDL_VIDEO_CENTERED=center" ); SDL_Init( SDL_INIT_EVERYTHING | SDL_INIT_TIMER ); ekran = SDL_SetVideoMode( 1600, 800, 32, SDL_NOFRAME | SDL_DOUBLEBUF ); cos = SDL_LoadBMP( "cb.bmp" ); tlo = SDL_LoadBMP( "tlo2.bmp" ); SDL_SetColorKey( cos, SDL_SRCCOLORKEY, SDL_MapRGB( cos->format, 255, 255, 255 ) ); while( !wyjscie ) { if( keystate[ SDLK_RIGHT ] ) { x++; } if( keystate[ SDLK_DOWN ] ) { y++; } if( keystate[ SDLK_LEFT ] ) { x--; } if( keystate[ SDLK_UP ] ) { y--; } SDL_BlitSurface( tlo, NULL, ekran, NULL ); SDL_BlitSurface( cos, NULL, ekran, & LudekDestination ); SDL_PollEvent( & zdarzenie ); if( zdarzenie.key.keysym.sym == SDLK_ESCAPE ) wyjscie = true; LudekDestination.x = x; LudekDestination.y = y; SDL_Flip( ekran ); } SDL_FreeSurface( cos ); SDL_FreeSurface( tlo ); return 0; }
|
|
akwes |
» 2011-12-20 22:03:21 delay to nie timer. Timery nie przyspieszają.
Poczytaj o timerach, temat wiele razy poruszany, rozwiąże Twoje problemy. A pisząc to bez timerów robisz to źle. Właściwie to wystarczy jeden timer. |
|
ly000 Temat założony przez niniejszego użytkownika |
» 2011-12-20 22:21:17 O to chodzi że już szukałem na google i również na forum.
Odpowiedź typu - poszukaj sobie, mnie nie satysfakcjonuję, tak można odpisać na każde pytanie na tym forum. |
|
akwes |
» 2011-12-20 22:56:23 |
|
« 1 » |