Niestety menu nie do końca działa w taki sposób jakbym chciał tzn. "buttony" działają prawidłowo, lecz gdy podczas grania w grę naciśniemy ESC (wyjście do menu) to gra działa dalej... 
Akcja gry nie zatrzymuje się i po naciśniećui "powrót do gry" widać inne położenie wrogów i nasza postać ma mniej żyć niż przed zastopowaniem gry...
Główna pętla działa dopóki nie naciśniemy wyjście   while(gra==1)- podczas wyjścia do menu(wciśnięty ESC i wartość gra=0) ta pętla nie powinna być wykonywana i niby nie jest bo widzimy na ekranie menu, a nie obraz gry. Myślałem dzisiaj nad tym i niestety nic nie wymyśliłem... Może znajdzie się dobry, mądry człowiek, który mnie oświeci :)
while(gra!=2) //2== menu 
{
     gmenu();
    while(gra==1) //1==gra
    {  
             while( ( speed > 0) && ( zycia>0 && punktacja<992) )
            {
                   if (key[KEY_ESC] )
             {
                   gra=0;
             }            
      }
       blit( bufor, screen, 0,0,0,0, 800,600);       
   } 
   blit( bufor, screen, 0,0,0,0, 800,600);   
}
Mam nadzieję, że usunę ten błąd ale narazie pracuję nad Menu->POMOC. Niczego szczególnego z kodu tam nie będzie. Po wejściu w pomoc będą jakieś "buttony" jak w menu i pod każdym będzie wyświetlana jakaś bitmapa na screen, ot całe menu :p. 
Odp Tomkos... 
W grze muszą być 2 pętle: 1 główna(wykonuj się dopóki coś tam)
2-ga  funkcja steruje prękdością increment_speed()
ale 3-cia faktycznie jest niepotrzebna i faktycznie można  zrobićmenu na case. Poprawi to czytelność kodu i ułatwi dalszą rozbudowę menu (bo powoli zaczynam się w tym wszystkim gubić) 
Może wtedy pauza będzie działała tak jak powinna... Zobaczymy... Może jutro uda mi się zastosować te zmiany w kodzie... 
 
Brak komentarzy:
Prześlij komentarz