[ Pwnage @ 29.01.2010. 13:34 ] @
Uglavnom igrica treba biti da se odozgore spustaju kvadratici tkz. bombeu rpogramu , a da se dole kvadratic izmice...
Nekuzim zasto nece , po meni cijeli kod valja...

Code:
#include <cstdlib>
#include <iostream>
#include <winbgim.h>
#include <ctime>


using namespace std;

class objekt
{
  private:
  int x;  
  char kretanje;
  public:
     objekt()
     {
        x=290;
     }
     void pomak(char);
     void crtaj();
  };
   void objekt::pomak(char tipka)
    {
        kretanje=tipka;
        if(kretanje==75)
        {
          setcolor(WHITE);
          rectangle(x,432,x+60,438);
          setcolor(BLACK);
          x=x-5;    
         }
        if(kretanje==77)
        {
          setcolor(WHITE);
          rectangle(x,432,x+60,438);
          setcolor(BLACK);
          x=x+5;
          }
    }
     void objekt::crtaj() 
     {
      rectangle(x,432,x+60,438);
     }             
   class bomba
   {
    private:
         int x,y;
    public:
     bomba()
     {        
       x=(static_cast<float>(rand())/RAND_MAX)*620;
       y=-((static_cast<float>(rand())/RAND_MAX)*480);
     }
     void crtanje();
     void brisanje();
 };
void bomba::crtanje()
 {
     rectangle(x,y,(x+20),(y+5));
 }    
 void bomba::brisanje()
 {
      setcolor(WHITE);
      rectangle(x,y,(x+20),(y+5));
      setcolor(BLACK);
      y=y+5;  
      if(y>490)
      {
               y=-((static_cast<float>(rand())/RAND_MAX)*480);
               x=(static_cast<float>(rand())/RAND_MAX)*620;
      }
  }
  int main()
  {
      int gdriver=9;
      int gmode=2;
      initgraph(&gdriver,&gmode,"");
      setbkcolor(WHITE);
      setcolor(BLACK);
      cleardevice();
      
      char odgovor='d';
      srand(time(NULL));
      bomba bomba1,bomba2,bomba3;
      objekt brod;
      brod.crtaj();
      
      do
      {
           bomba1.brisanje();
           bomba2.brisanje();
           bomba3.brisanje();
           bomba1.crtanje();
           bomba2.crtanje();
           bomba3.crtanje();
           
           delay(100);
           
       if(kbhit())
       {
                  odgovor=getch();
                  
                  brod.pomak(odgovor);
       }               
        brod.crtaj();
       }
       while(odgovor!='k');
  return 0;
}


podijelim ja klase na dijelove i to ali ovako se cijeli vidi... Nekuzim kjoi dio mi promice....


[Ovu poruku je menjao Mihajlo Cvetanović dana 29.01.2010. u 15:13 GMT+1]

[Ovu poruku je menjao Pwnage dana 29.01.2010. u 16:51 GMT+1]
[ Mihajlo Cvetanović @ 29.01.2010. 14:17 ] @
A kako to neće? Opiši problem.
[ Pwnage @ 29.01.2010. 14:36 ] @
dobijem samo pravokutnik kojim mogu ici lijevo desno , navode "bombe"(kvadratici/pravokutnici) se nespustaju odozgo prema dole , pokreni program pa ces vidit...
[ Mihajlo Cvetanović @ 29.01.2010. 14:50 ] @
Nemam na čemu da pokrenem. Moj Microsoft Visual C++ 2003 nema funkcije initgraph, cleardevice, rectangle, setcolor, setbkcolor.

Uzgred, u konstruktoru bombe članica y dobija negativnu vrednost, a treba pozitivnu. Takođe, u funkciji bomba::brisanje ispituješ da li je y<490, a treba >. Takođe, u istoj funkciji setcolor je valjda višak, jer želiš da obrišeš pravougaonik, a ne da ga nacrtaš.
[ Pwnage @ 29.01.2010. 16:05 ] @
Yep </> sam zeznio kod if nisam ni skuzio , thx bro... Treba setclolor , nije višak bez njega ostaje kao duplo izgleda , ovako ga stavlja u bijelo i nevidi se dupli...

Sad sam taman na zavšetku ove knjige iz koje ucim , velicinom smo ucili sve sto je u tom programu pa je to jedan veliki mix(normalno i naredbe druge kao sto je switch...)...

btw. kako bi mogao napravi neko odbrojavanje? kao od 100 do 0 ili obrnuto to nigdje nije bilo nesto takvo...
i imas neku preporuku za neku knjigu zeljan sam ucenja , nabavio sam jos jednu e-book i tu cu procitat ima samo oko 100 stranica , ova je imama oko 306...

da i promijenio sam kod u oprginalu btw

[Ovu poruku je menjao Pwnage dana 29.01.2010. u 17:33 GMT+1]
[ Mihajlo Cvetanović @ 29.01.2010. 16:29 ] @
Hmm, menjao si kod u originalnom tekstu (vratio na staro, sa samo promenjenim znakom >), i pokvario ono što sam ja promenio. Baš sam ti lepo bio nazubio kod, a vidi ga sad :-).

Jedna stvar mi nije jasna. Pozadina je bela, bombe su crne, ali pravougaonik koga igrač pomera je opet beo. Kako se onda vidi?

Ne mogu da ti pomognem za odbrojavanje, sad idem s posla kući, a tamo mi je pokvaren kompjuter.
[ Pwnage @ 29.01.2010. 16:35 ] @
sry nisam ni vidio da si mijenjao...pozadina bijela,bombe crne i pravokutnik kojeg igrac pomjera je crn...
[ Wajda.W @ 21.03.2010. 09:09 ] @
Stvarno ne znam zasto ne radi, sve mi deluje ok sem tog minusa u konstruktoru klase bomba i u metodi brisanje.
Ja sam radio nesto s odbrojavanjem, mogu ti dati ideju kako to da realizujes.
Vidim da imas delay(100), ne bih ti savetovao da koristis delay() jer ti onda na to vreme ubijas tastaturu, tj korisnik ne moze da odgovori.
Ja sam to radio ovako:
Nadji f-ju koja ti vraca sistemsko vreme, i u svakom prolazu while petlje ponovo iscitas sistemsko vreme i oduzmes staro od novog i onda vidis koliko je vremena proslo, ako je proslo onoliko koliko tebi treba onda npr pomeris bombu na dole, ili smanjis neki brojas koji ce ti sluziti za odbrojavanje, ili oba.
A sto se tice bombi, pa vidi koje su ti granice ekrana, mozda ih iscrtava negde "van" ekrana, probaj sa debugerom da nadjes problem.