[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

16 wrz 2010

Klasa wroga MEDIUM

Mamy już bazową klasę wroga. Utworzyliśmy w ostatnim poście klasę wroga EASY, teraz czas na wroga medium. Tworzymy ją dziedzicząc z klasy Cwrog dodając tylko metodę poruszanie_wroga(). Metoda ta ma taką samą nazwę i parametry(a właściwie ich brak) jak funkcja bazowa Cwrog, więc nie przeładowujemy jej tylko edytujemy ją na potrzeby klasy Cwrog_medium. Inne metody odziedziczone void strzelanie_wroga(); i
void odejm_zycia(int);
   pozostają niezmienne. No może w przyszłości podczas pracy nad projektem coś mi przyjdzie do głowy...

class Cwrog_medium : public Cwrog
{
public:
   bool kierunek_poz;
  Cwrog_medium::Cwrog_medium()
  {
      lot_pion=0;
      kierunek_poz = true;
      zycia=5;
  }

void Cwrog_medium::poruszanie_wroga()
{
   if(zycia<=0)
   {
        punktacja=punktacja+2;
   }

   if(lot_pion==3)
   {
      pozwro_y++;
      lot_pion=0;
   }
   lot_pion++;

   if( (pozwro_y>430) || (zycia<=0) )
   {
      zycia=5;
      pozwro_x=rand()%740;
      pozwro_y=-70;
   }

   if(pozwro_x<0)
   {
      kierunek_poz=true;
   }
   else if(pozwro_x>748)
   {
      kierunek_poz=false;
   }
   if(kierunek_poz)
   {
      pozwro_x=pozwro_x+1;
   }
   else if(!kierunek_poz)
   {
      pozwro_x=pozwro_x-1;
   }
}

};

W tej klasie dodałem typ logiczny bool:
bool kierunek_poz;
Dzięki niemu będziemy przechowywać kierunek lotu w orientacji poziomej czyli lewo lub prawo. 

Tak więc jeżeli pozycja X wroga będzie mniejsza niż 0 to zmienna kierunek_poz przyjmie wartość true.
Jeżel pozycjai X wroga będzie większa niż 748 to zmienna kierunek_poz przyjmie wartość false.
if(pozwro_x<0)
{
    kierunek_poz=true;

}
else if(pozwro_x>748)
{
    kierunek_poz=false;

}
   

Jeżeli kierunek_poz ma wartość true to wróg porusza się w prawo, bo 
 pozwro_x=pozwro_x+1; 
 Jeżeli kierunek_poz ma wartość false to wróg porusza się w lewo, bo  pozwro_x=pozwro_x-1;

if(kierunek_poz)
{
   pozwro_x=pozwro_x+1;

}
else if(!kierunek_poz)
{
   pozwro_x=pozwro_x-1;

} 

Zrobiłem rysunek pomocniczy w paincie :P żeby lepiej pokazać o co chodzi... wróg porusza się w lewo lub w prawo,  spadając jednocześnie w dół ( if(lot_pion==3) )  trochę wolniej od wroga easy(  if(lot_pion==2))
Rysunek pomocniczy obrazujący ruch wroga_medium


Mam zamiar stworzyć kilka rodzajów wrogów. Niestety nie mam zielonego pojęcia o sztucznej inteligencji, więc ruchy wroga muszę sam wymyśleć... Niedługo dodam klasę wroga o nazwie.... Hard ;p 
Jak macie jakieś pomysły, zastrzeżenia co do stworzonych klas lub jakiś pomysł na przyszłego wroga to piszcie napewno skorzystam :)

Brak komentarzy:

Prześlij komentarz