[SDL] Problem z przejściem pomiendzy menu a grą
Ostatnio zmodyfikowano 2013-01-01 18:42
JategoNwM Temat założony przez niniejszego użytkownika |
[SDL] Problem z przejściem pomiendzy menu a grą » 2013-01-01 18:16:19 Witam! Jak w temacie mam problem z przejściem z menu do gry przyciskając pszycisk powinno mi ładnie przejść a program nic nie robi. W czym problem? #include <SDL/SDL.h> #include <cstdlib>
SDL_Surface * ekran = NULL; SDL_Surface * przycisk = NULL; SDL_Surface * TloGra = NULL;
SDL_Rect przyciskDane; SDL_Rect przyciskCel;
SDL_Event zdarzenie;
int myszkaX, myszkaY;
int Gra = 0;
bool wyjscie = false;
int main( int argc, char * args[] ) { SDL_Init( SDL_INIT_EVERYTHING ); ekran = SDL_SetVideoMode( 800, 600, 32, SDL_SWSURFACE | SDL_DOUBLEBUF ); SDL_Flip( ekran ); while( !wyjscie ) { if( Gra == 0 ) { przycisk = SDL_LoadBMP( "przycisk.bmp" ); przyciskDane.w = 200; przyciskDane.h = 50; przyciskCel.x = 300; przyciskCel.y = 275; while( !wyjscie ) { SDL_FillRect( ekran, NULL, 0 ); SDL_BlitSurface( przycisk, & przyciskDane, ekran, & przyciskCel ); while( SDL_PollEvent( & zdarzenie ) ) { if( zdarzenie.type == SDL_MOUSEMOTION ) { myszkaX = zdarzenie.motion.x; myszkaY = zdarzenie.motion.y; } if( zdarzenie.type == SDL_MOUSEBUTTONDOWN ) { if( zdarzenie.button.button == SDL_BUTTON_LEFT && ( myszkaX >= przyciskCel.x && myszkaX <= przyciskCel.x + przyciskDane.w ) &&( myszkaY >= przyciskCel.y && myszkaY <= przyciskCel.y + przyciskDane.h ) ) { Gra++; } } } } SDL_FreeSurface( przycisk ); } if( Gra == 1 ) { SDL_FillRect( ekran, NULL, 0 ); while( !wyjscie ) { SDL_FillRect( ekran, NULL, 0 ); SDL_BlitSurface( TloGra, NULL, ekran, NULL ); SDL_Flip( ekran ); TloGra = SDL_LoadBMP( "TloGra.bmp" ); while( SDL_PollEvent( & zdarzenie ) ) { if( zdarzenie.key.keysym.sym == SDLK_ESCAPE ) { SDL_FreeSurface( przycisk ); wyjscie = true; } } } } } }
|
|
Mike148 |
» 2013-01-01 18:24:21 Tak na pierwszy rzut oka to masz zdublowaną główną pętlę i to nie wychodzisz z nich. To może być problem.
Rada : Zrób jedną pętlę i stwórz sobie funkcję rysującą menu oraz drugą rysującą grę. Wywołuje je w zależności co chcesz narysować. Nie wiem dlaczego wszyscy boją się używać funkcji. Przecież one nie gryzą ! |
|
Mrovqa |
» 2013-01-01 18:42:22 Chyba najgorsze co może być - brać się za coś nie spełniając wymagań. Osobiście każdemu początkującemu radzę najpierw nauczyć się języka (chociażby w stopniu strukturalnym, ale najlepiej - jak najwięcej), a dopiero później brać się za cięższe biblioteki. Teraz to owszem - jest mała różnica. Da się jakoś znieść taki kod, ale później się okaże, że to będzie niewygodne i nieczytelne. Ciężko będzie znaleźć cokolwiek. To taka moja drobna rada :) |
|
« 1 » |