Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 11 odgovora
  • 4.504 pregleda

Najnovija ↓

Re: Jedna moja igra na kojoj radim 11.02.2008. u 21:45 · pre 227 meseci #2
mogao si napomenuti sa kojim tipkama se okrece top i puca, da ne ganjam po tastaturi ;)

pretpostavljam, bice neka logicka igra u pitanju?
pa npr. kada bi se ogranicio broj metaka i dodalo jos elemenata, mogla bi se napraviti dobra mozgalica!

pohvala, samo nastavi!
Re: Jedna moja igra na kojoj radim 11.02.2008. u 22:52 · pre 227 meseci #3
na D i F se pokrece kupola, na strelice se igra....

hvala

E ovako igra je pravljena u SDL-u a za okruzenje sam koristio DevCpp pravio sam 2D engine, za rotaciju sam koristio SDL_gfx i to je to :)

Re: Jedna moja igra na kojoj radim 13.02.2008. u 15:02 · pre 227 meseci #4
Jako mi se svidja igrica, pogotovu to sto je radis sam.

Moje preporuke su ti
- Da se potrudis da se gameplay ubrza.
- Da FPS rate bude na 33. Jer mi se cini da igrica radi nekako presporo. (Ili ti je igrica prezahtevna sto ne bi smela da bude sa obzirom na to da su tu samo matrica i 1 sprajt.
- Za pocetak bi mogo da stavis bar neke nepriatelje sa najjednostavnijim AI-em pa ces to unapredjivati vremenom i zajedno sa igrom.
- Probaj da umesto SDL-a koristis DirectX funkcije jer ne znam da li je to do mene ali one rade mnogo, mnogo brze...

Pozdrav i svaka cast...
Re: Jedna moja igra na kojoj radim 14.02.2008. u 23:30 · pre 227 meseci #5
hvala programiranje radim sam a dizajn mi crta drugar.

FPS nije problem nego je igra zahtevna (hahahahahahahahhaahahhahaah) na mom kompu GTA radi bolje od te igre to je zbog sporih funkcija SDL-a treba da ga ukombinujem sa OpenGL-om ali nemam mnogo vremena da ucim posto spremam je***ni prijemni i bombardovanje u skoli....

Vise volim GL jel je cistiji kod DX ima gomilu onog shit coda kojji nicemu nesluzi neg je cista "formlanost".

I mislim da cu napraviti da tenkci ide u 360 stepeni mada.... hm celo vreme pravim 2D egnine koji je jednostavan za upotrtebu i sada kontam da sam probo celo vreme da napravim game maker, pa sada kontam da bi mozda u njemu mogo brze igru da zavrsim.... mada hm?
Re: Jedna moja igra na kojoj radim 15.02.2008. u 00:43 · pre 227 meseci #6
SMRT GAME MAKERU!!! - Pisi program...

Moja preporuka ti je da napravis engine specijalizovan samo za tvoju igru.

Sto se FPS-a tice ni SDL nije bas tako spor, mozda ti je problem negde u algoritmu. Verovatno u glavnom loop-u.
Mogao bi da postavis deo coda (main loop-samo) mozda bi moglo nesto da se pomogne.

Takodje moja preporuka ti je da se za kretanje topa koristi mis, bice mnogo atraktivnije osim ako ne spremas neku mozgalicu. Mozes razviti brzu pucacinu iz pticije perspektive imam osecaj da bi bilo mnogo zarazno.

Samo nastavi ... (I javi kad zavrsis)

I ako taj tvoj drug stvarno radi grafiku mogao bi nesto da pomogne oko moje 2D platforme (ProjS - koji za sada polako napreduje u 2D engine)
Re: Jedna moja igra na kojoj radim 16.02.2008. u 10:36 · pre 227 meseci #8


Hteo bih da predjem na OpenGL ali 2D, 3D me jos nezanima dali neko zna mozda neka uputstva/tutoriale o 2d programiranju u OGL-u?


Evo kod.

Code:
          while( SDL_PollEvent( &event ) )
      {
       
         if( event.type == SDL_KEYDOWN) 
         {
            switch( event.key.keysym.sym )
            {
         
               case SDLK_SPACE:
               {  
                  if (f%90==0)
                  {
                  if (slug.ispaljen==false)
                  {
                     sluger=vidljiv_metak;                          
                     slug.ispaljen=true;
                  
                     if (f==0)
                     {
                         slug.x=tenk.box.x+tenk.box.w/2-3;
                         slug.y=tenk.box.y+tenk.box.h/2-3-20;
                         slug.k=0;
                     }
                     if (f==270)
                     {
                     slug.x=tenk.box.x+tenk.box.w/2-3+20;
                     slug.y=tenk.box.y+tenk.box.h/2-3;
                        slug.k=1;
                        }
                  
                     if (f==180)
                     {
                         
                     slug.x=tenk.box.x+tenk.box.w/2-3;
                     slug.y=tenk.box.y+tenk.box.h/2-3+20;       
                        slug.k=2;
                        }
                  
                     if (f==90)
                     {
                        slug.x=tenk.box.x+tenk.box.w/2-3-20;
                        slug.y=tenk.box.y+tenk.box.h/2-3;     
                        slug.k=3;
                        }

                  
                     slug.fire=false;
                     
            
                  }
                  }
               } break;    
              
               case SDLK_ESCAPE:  
               {
                  quit = true;
               } break; 
               
               
               case SDLK_d:
               {
                  vrti_right=false;
                  vrti_left=true;
               } break; 
               
               case SDLK_f:
               {
                  vrti_right=true;
                  vrti_left = false;
               } break; 
               
  
                
            }
         }

         if( event.type == SDL_QUIT )
         {
            quit = true;
         }
         
         if( event.type == SDL_KEYUP) 
         {
            switch( event.key.keysym.sym )
            {
               case SDLK_UP: tenk.up=false; break;
               case SDLK_DOWN: tenk.down = false; break;
               case SDLK_RIGHT: tenk.right = false; break;
               case SDLK_LEFT: tenk.left = false; break;
            }
         }
                    
                    
         

      }
      

      
      if(( keystates[ SDLK_UP ] )&&(tenk.right == false)&&(tenk.left == false)&&(tenk.nm==-1)&&((tenk.box.y%40)==0)&&(tenk.ml==false)&&(tenk.mr==false)&&(tenk.klizi==false)&&(tenk.adown==false)&&(tenk.aup==false)&&(tenk.aleft==false)&&(tenk.aright==false))   
      { 
         if ((tenk.klizi==false)&&(tenk.kol==false))
         {
            dot=tup;       
            tenk.mu = true;
            tenk.up = true;        
         }
      }  
      
      else
      
         if(( keystates[ SDLK_DOWN ] )&&(tenk.right == false)&&(tenk.left == false)&&(tenk.nm==-1)&&((tenk.box.y%40)==0)&&(tenk.ml==false)&&(tenk.mr==false)&&(tenk.klizi==false)&&(tenk.adown==false)&&(tenk.aup==false)&&(tenk.aleft==false)&&(tenk.aright==false))     
         {
            if ((tenk.klizi==false)&&(tenk.kol==false))
            {
               dot=tdown;        
               tenk.md = true;
               tenk.down = true;
            }
         } 
         
         else
         
            if(( keystates[ SDLK_LEFT ] )&&(tenk.down == false)&&(tenk.up == false)&&(tenk.nm==-1)&&((tenk.box.x%40)==0)&&(tenk.mu==false)&&(tenk.md==false)&&(tenk.klizi==false)&&(tenk.adown==false)&&(tenk.aup==false)&&(tenk.aleft==false)&&(tenk.aright==false))  
            { 
               if ((tenk.klizi==false)&&(tenk.kol==false))
               {
                  dot=tleft;   
                  tenk.ml = true;
                  tenk.left = true;
               }
            } 
      
            else
   
               if(( keystates[ SDLK_RIGHT ] )&&(tenk.down == false)&&(tenk.up == false)&&(tenk.nm==-1)&&((tenk.box.x%40)==0)&&(tenk.mu==false)&&(tenk.md==false)&&(tenk.klizi==false)&&(tenk.adown==false)&&(tenk.aup==false)&&(tenk.aleft==false)&&(tenk.aright==false))                                                          
               { 
                  if ((tenk.klizi==false)&&(tenk.kol==false))
                  {
                     dot=tright;       
                     tenk.right = true;
                     tenk.mr = true;
                  }
               }         


      
          
      tenk.move(tiles,tenk);
      slug.move_bull (tiles);
      tenk.set_camera();
      
      if (vrti_left==true)
      {
         f+=6;
         if(f%90!=0) {vrti_left=true;}
         else
         vrti_left=false;
      }
      else
            
      if (vrti_right==true)
      {
         f-=6;
         if(f%90!=0) {vrti_right=true;}
         else
         vrti_right=false;
      }
      
            if (f==360)
      {
          vrti_left=false;
          vrti_right=false;
          f=0;
      }
      
      if (f<0)
      {    
          f=354;
      }
      

      red_gate_count+=1;
 

      
      
      if ((tenk.red_gate_opened==true)&&(opened==false))
      {
         opened=true;
         red_gate_count=41;

      }
      
      x = tenk.box.x+20-kupola[f]->w/2;
      y = tenk.box.y+20-kupola[f]->h/2;
      
     if (red_gate_count==49)
     {
        red_gate_count=0;
        
     }
      
     if ((red_gate_count>=40)&&(tenk.red_gate_opened==false))  {red_gate_count=20;}     

      

      
      
      for( int t = 0; t < TOTAL_TILES; t++ )
      {
    
      
              if ((tiles[t]->type>=TILE_GATE_RED)&&(tiles[t]->type<49))
              {            
                 tiles[ t ]->type=red_gate_count;
              }
              tiles [ t ]->show(); 
       
      }    
      
    

      slug.draw_bull();
      tenk.show();
      
     

   
      

      apply_surface( x-camera.x,  y-camera.y, kupola[f], screen );
     
      
       
      if( SDL_Flip( screen ) == -1 )
      {
         return 1;    
      }
        
      if( fps.get_ticks() < 1000 / FRAMES_PER_SECOND )
      {
         SDL_Delay( ( 1000 / FRAMES_PER_SECOND ) - fps.get_ticks() );
      }
   }
            
   clean_up( tiles );
    
   return 0;    
Re: Jedna moja igra na kojoj radim 16.02.2008. u 12:14 · pre 227 meseci #9
Mnoooooogo IF-ova.
Predlazem ti da ovih 4 if zamenis sa nijednim:
Code:

if (f%==0)
if (f%=90)
if (f%=180)
if (f%=270)


Mogao bi objektu tenk da dodas jos dva parametra, pravac kretanja( ugao od 0 do 359 ), i brzinu kretanja, eventualno jos i ubrzanje.
Pa bi se tenk kretao:
Code:

if (event.type == SDL_KEYUP) ' Ovaj IF vec koristis
          { Tenk.ubrzanje = Tenk.ubrzanje + 0.3; }
if (event.type == SDL_KEYDOWN) ' Ovaj IF vec koristic
          { Tenk.ubrzanje = Tenk.ubrzanje - 0.3; }

Tenk.brzina = Tenk.brzina + Tenk.ubrzanje;
Tenk.x = Tenk.x + cos(Tenk.pravac * 3.14/180) * Tenk.brzina;
Tenk.y = Tenk.y + sin(Tenk.pravac * 3.14/180) * Tenk.brzina;


Tako bi se resio 4 uporedjivanja i malo ubrzao rad tvog programa. Jer znamo da je uporedjivanje najzahtevnija operacija za procesor, obicno joj je potrebno 24 takta. sto znaci da ako imas 1 procesor od 1GHz uporedjivanje se vrsi brzinom od 1/24 GHz.

I ne znam sta ce ti ono:
if {f%90==0}
Pusti ga da puca u svim pravcima...

I mogao bi da mu dodas nesto kao smirivanje

if (tenk.brzina < 1 && tenk.ubrzanje => 0) { tenk.brzina = 0}
if (tenk.brzina > -1 && tenk.ubrzanje =< 0) { tenk.brzina = 0}

A umesto da kupolu okreces na F i G, za to koristi misa... I dobijas nesto slicno Alien Shooter-u - EXTRA INTERESANTNO i ZARAZNO

Pozdrav
Re: Jedna moja igra na kojoj radim 16.02.2008. u 13:01 · pre 227 meseci #10
Citat:
Hteo bih da predjem na OpenGL ali 2D, 3D me jos nezanima dali neko zna mozda neka uputstva/tutoriale o 2d programiranju u OGL-u?

Mozes da krenes sa http://glfw.sourceforge.net/ ( GLFW is a free, Open Source, portable framework for OpenGL application development. In short, it is a single library providing a powerful, portable API for otherwise operating system specific tasks such as opening an OpenGL window, and reading keyboard, time, mouse and joystick input. )

Ako mozes, nabavi http://www.opengl.org/documentation/red_book/.

A za uputstva/tutoriale: http://www.opengl.org, http://www.google.com :)
Re: Jedna moja igra na kojoj radim 19.02.2008. u 22:56 · pre 227 meseci #12
Što prvo ne završiš ovu igru pre nego što kreneš sa učenjem nekog apija? Ako završiš jednu igru u bilo kom apiju portovanje če ti biti lakše.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme