Kamil9132 Temat założony przez niniejszego użytkownika |
[Allegro] Zmiana wartości po naciśnięciu klawisza » 2011-10-22 15:39:55 Witam Mam taki kod: #include <allegro.h> int main() { allegro_init(); install_keyboard(); set_color_depth( 16 ); set_gfx_mode( GFX_AUTODETECT, 640, 480, 0, 0 ); clear_to_color( screen, makecol( 10, 10, 10 ) ); int klawisz = 0; int menug = 0; int wyjdz = 0; int konie = 0; int nkonie = 0; int kmenug = 0; while( wyjdz == 0 ) { if( menug == 0 or menug == 1 ) { if( key[ KEY_DOWN ] ) { menug = 1; } if( key[ KEY_UP ] ) { menug = 0; } } if( menug == 2 ) { if( key[ KEY_RIGHT ] ) { konie = 0; } if( key[ KEY_LEFT ] ) { konie = 1; } } if( menug == 0 ) { textprintf( screen, font, 200, 100, makecol( 255, 255, 255 ), "Start" ); textprintf( screen, font, 200, 120, makecol( 255, 255, 128 ), "Wyjdz z gry" ); if( key[ KEY_ENTER ] ) { } } textprintf_ex( screen, font, 200, 400, makecol( 255, 255, 128 ), - 1, "Liczba: %d", menug ); textprintf_ex( screen, font, 200, 420, makecol( 255, 255, 128 ), - 1, "Liczba: %d", kmenug ); textprintf_ex( screen, font, 200, 440, makecol( 255, 255, 128 ), - 1, "Liczba: %d", konie ); if( menug == 1 ) { textprintf( screen, font, 200, 100, makecol( 255, 255, 128 ), "Start" ); textprintf( screen, font, 200, 120, makecol( 255, 255, 255 ), "Wyjdz z gry" ); if( key[ KEY_ENTER ] ) { menug = 2; } } if( menug == 2 ) { textprintf( screen, font, 200, 200, makecol( 255, 255, 128 ), "Czy na pewno chcesz wyjść?" ); if( konie == 0 ) { textprintf( screen, font, 220, 220, makecol( 255, 255, 225 ), "Nie" ); textprintf( screen, font, 180, 220, makecol( 255, 255, 128 ), "Tak" ); if( key[ KEY_ENTER ] ) { menug = 0; } } if( konie == 1 ) { textprintf( screen, font, 220, 220, makecol( 255, 255, 128 ), "Nie" ); textprintf( screen, font, 180, 220, makecol( 255, 255, 225 ), "Tak" ); if( key[ KEY_ENTER ] ) { wyjdz = 1; } } } } return 0; } END_OF_MAIN(); Mój problem polega na tym że po naciśnięciu strzałki w dół i entera (naciśnięciu na wyjście) to napis "Start" i "wyjdz" powinien zniknąć, a nie znika. Drugi problem polega na tym że po naciśnięciu strzałki w dół i entera (naciśnięciu na wyjście), a później strzałki w lewo to powinien wyświetlać się napis TAK na biało, a nie wyświetla się. Wydaje mi się że dzieje się tak dlatego że menug nie zmienia wartości na 2, a powinien, to jest kod za to odpowiedzialny: if( menug == 1 ) { textprintf( screen, font, 200, 100, makecol( 255, 255, 128 ), "Start" ); textprintf( screen, font, 200, 120, makecol( 255, 255, 255 ), "Wyjdz z gry" ); if( key[ KEY_ENTER ] ) { menug = 2; } } Bardzo proszę o szybką pomoc. |