[POBIERZ] kod źródłowy i inne pliki potrzebne do uruchomienia gry  [POBIERZ] 

Zachęcam do komentowania :) Mile widziane sugestie i pytania, na które chętnie odpowiem

6 lis 2010

Menu -> pomoc

Główne menu już działa... W międzyczasie szukam bitmap dla wrogów (już na stałe) i meszę znaleźć jeszcze 1 bitmapę dla wroga_vhard. Pozostałe "poruszają się". 
Także popracowałem nad menu pomocy. Owe menu będzie działało na zasadzie najechania myszką na poszczególne pole. Otóż jeżeli najedziemy myszką na pole sterowanie to obok wyświetli się nam informacja dotycząca sterowania w grze itd.
Pole powrót oczywiście trzeba będzie kliknąć aby powrócić do głównego menu. 
Hmmm pole "o autorze" zmienię na pole "o grze" (komu by się chciało je kliknąć :P) i w nim opiszę rozgrywkę w grze...

Kod jest prawie identyczny jak w poprzednich 2-óch postach, tyle że w pętli głównej wyświetlana jest funkcja gmenu_pomoc(); dla wartości gra==3; , a także małe zabiegi kosmetyczne związane z graficznym położeniem "buttonów"

case 3:
gmenu_pomoc();
break;




W miejscu oznaczonym czerwonym prostokątem będą wyświetlane poszczególne informacje...

4 lis 2010

Menu w grze- poprawiony błąd pauzy

Wczoraj trochę się głowiłem jak usunąć ten błąd i niestety nic nie wymyśliłem. Dzisiaj przebudowałem trochę program (dzięki pomysłowi tomkosa) i zamiast kilku pętli while ( lol) menu gry będzie na switchu.
0- oznacza wyświetlanie głównego menu
1- gra
2- wyjście z gry

while( gra!=2 ) //jezeli gra==2 to wychodzi z programu
{
  while(( speed > 0) && ( zycia>0) )
  {
     switch(gra)
     {

     case 0:
     gmenu();
//wyswietlanie menu
     break;

     case 1:

     //kod gry 
     break; 
     } 

     speed--; // ta dekrementacja zmiennej nie może zawierać się w pętli switch, więc jest poza nią(speed odpowiada za prawidłowy podział ilości klatek na sek) 
   }
   blit( bufor, screen, 0,0,0,0, 800,600);
}
 

Ten sposób jest oczywiście lepszy dla dalszej rozbudowy programu, a także dla oka :) 
W międzyczasie znajdę innąmuzyczkę dla menu. 
Pod case 3  wyświetlana pomoc w menu ale o tym w następnym poście.  

3 lis 2010

Menu w grze- błąd pauzy

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...