maksymiljan4 Temat założony przez niniejszego użytkownika |
[allegro] Problem z poruszaniem sie w menu za pomoca klawiatury » 2012-11-07 16:16:11 Witam wszystkich Od jakiegos czasu zaiteresowalem sie tworzeniem gier w jezyku c++ i trafilem na ta strone. Dzieki niej nauczylem sie w malym stopniu bibloteki allegro. Piszac gre natrafilem na pewien problem, otoz gdy w moim menu sa trzy opcje: Nowa gra, Wczytaj gre, Wyjscie z gry klikajac raz na klawisz S, przechodze odrazu do Wyjscie z gry a powinno najpeirw byc Wczytaj gre a potem po kolejnym wcisnieciu kalwisza S powinno byc wyjscie z gry jak mam to zrobic? prosze o pomoc i z gory dziekuje. oto moj tymczasowy kod: #include <allegro.h>
int main() { allegro_init(); install_keyboard(); set_color_depth( 16 ); set_gfx_mode( GFX_AUTODETECT_WINDOWED, 900, 650, 0, 0 ); BITMAP * bufor1 = NULL; BITMAP * obrazek1 = NULL; BITMAP * obrazek2 = NULL; BITMAP * obrazek3 = NULL; BITMAP * obrazek4 = NULL; FONT * font1; font1 = load_font( "pap.pcx", NULL, NULL ); obrazek1 = load_bmp( "nowa gra2.bmp", default_palette ); bufor1 = create_bitmap( 900, 650 ); int opcja1; int opcja2; int opcja3; while( !key[ KEY_DEL ] ) { if( key[ KEY_SPACE ] ) { blit( obrazek1, bufor1, 0, 0, 0, 0, obrazek1->w, obrazek1->h ); textprintf_ex( bufor1, font1, 50, 50, makecol( 255, 255, 255 ), - 1, " NOWA GRA" ); textprintf_ex( bufor1, font1, 50, 100, makecol( 255, 255, 255 ), - 1, " WCZYTAJ GRE" ); textprintf_ex( bufor1, font1, 50, 150, makecol( 255, 255, 255 ), - 1, " WYJSCIE Z GRY" ); } if( key[ KEY_W ] ) { blit( obrazek1, bufor1, 0, 0, 0, 0, obrazek1->w, obrazek1->h ); textprintf_ex( bufor1, font1, 50, 50, makecol( 255, 255, 255 ), - 1, " --> NOWA GRA" ); textprintf_ex( bufor1, font1, 50, 100, makecol( 255, 255, 255 ), - 1, " WCZYTAJ GRE" ); textprintf_ex( bufor1, font1, 50, 150, makecol( 255, 255, 255 ), - 1, " WYJSCIE Z GRY" ); opcja1 = 1; } if( opcja1 == 1 and key[ KEY_S ] ) { blit( obrazek1, bufor1, 0, 0, 0, 0, obrazek1->w, obrazek1->h ); textprintf_ex( bufor1, font1, 50, 50, makecol( 255, 255, 255 ), - 1, " NOWA GRA" ); textprintf_ex( bufor1, font1, 50, 100, makecol( 255, 255, 255 ), - 1, " --> WCZYTAJ GRE" ); textprintf_ex( bufor1, font1, 50, 150, makecol( 255, 255, 255 ), - 1, " WYJSCIE Z GRY" ); opcja2 = 1; } if( opcja2 == 1 and key[ KEY_S ] ) { blit( obrazek1, bufor1, 0, 0, 0, 0, obrazek1->w, obrazek1->h ); textprintf_ex( bufor1, font1, 50, 50, makecol( 255, 255, 255 ), - 1, " NOWA GRA" ); textprintf_ex( bufor1, font1, 50, 100, makecol( 255, 255, 255 ), - 1, " WCZYTAJ GRE" ); textprintf_ex( bufor1, font1, 50, 150, makecol( 255, 255, 255 ), - 1, " --> WYJSCIE Z GRY" ); } blit( bufor1, screen, 0, 0, 0, 0, 900, 650 ); } destroy_bitmap( obrazek1 ); destroy_bitmap( bufor1 ); return 0; } END_OF_MAIN();
|