[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

22 wrz 2010

klasa wroga Boss1

Z powodu braku pomysłu na wroga veryhard zrobiłem boss1. Podobnie do poprzednich klas dziedziczymy z klasy bazowej Cwrog i tym razem "edytujemy" 2 metody ale o tym poniżej.
Mam już część bitmap do gry, jeżeli znacie jakieś stronki z darmowymi bitmapami z gier kosmicznych podobnych do mojej to dajcie link :)

class Cboss1 : public Cwrog
{
 public:
   
int pozpocwro_x[5], pozpocwro_y[5]; 
 
 Cboss1::Cboss1()
 {
   pozwro_x=300;
   pozwro_y=20;
   czest_poc=0;
   zycia=100;
   kierunek_poz=false;
 }

 void poruszanie_wroga()
 {
     if(zycia<=0)
    {
        punktacja=punktacja+101;
        pozwro_y=1000;
        zycia=100;
    }

   if(pozwro_x<0)
   {
       kierunek_poz=true;
   }
       else if(pozwro_x>611)
   {
      kierunek_poz=false;
   }

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

 


 void strzelanie_wroga()
 {
     for(int i=0; i<5; i++)
     {
        if ( pozpocwro_y[i]>460)
        {
              if (czest_poc>=100)
              {
                    pozpocwro_x[i]=pozwro_x-10;
                    pozpocwro_y[i]=pozwro_y+80;
                    pozpocwro_x[i+1]=pozwro_x+30;
                    pozpocwro_y[i+1]=pozwro_y+80;
                    pozpocwro_x[i+2]=pozwro_x+70;
                    pozpocwro_y[i+2]=pozwro_y+80;
                    pozpocwro_x[i+3]=pozwro_x+110;
                    pozpocwro_y[i+3]=pozwro_y+80;
                    pozpocwro_x[i+4]=pozwro_x+150;
                    pozpocwro_y[i+4]=pozwro_y+80;
               }
         } 


         if(czest_poc==100)
         {
               czest_poc=0;
         }


         if (pozpocwro_y[i]>430)
         {
             pozpocwro_y[i]=800;
         }

         czest_poc++;  
         pozpocwro_y[i]=pozpocwro_y[i]+3;
     }
 }

};

Metoda poruszanie_wroga() w zasadzie nie uległa zmianie poza ograniczeniem 
else if(pozwro_x>611) 
z powodu większej .bmp aby nie wyszła poza ekran. 
Boss porusza się w lewo lub w prawo podobnie jak wrog_medium ale nie spada w dół.

Metoda strzelanie_wroga() jest trochę bardziej skomplikowana, ponieważ nasz Boss1 jak przystało na "matkę" musi być trudny i będzie strzelał 5 pociskami naraz.  Wszystko dzieje się w pętli for i przy uzyciu 2- tablic 5-elementowych.  
2-óch, ponieważ potrzebujemy 2 zmiennych do określenia położenia pocisku x i y. Reszty nie będę tłumaczył, ponieważ bym się powtarzał co post. 
Od zmiennej x odejmuję lub dodaję jakieśwartości aby pociski nie nakładały się na siebie np:
pozpocwro_x[i]=pozwro_x-10; 


Jeżeli chodzi o prace nad grą to w 1 dzień szukam jakiś bitmap i je wycinam itp, a resztęczasu poświęcam na kodzenie i testowanie tego co udało mi się napisać.  Kolejne dni poświęcę na dodanie jakiś bonusów (dodatkowa amunicja, zwiększenie szybkości) spadających po zestrzeleniu wroga.  

Rysunek pomocniczy obrazujący ruchy Boss1

Brak komentarzy:

Prześlij komentarz