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