pomoč

Vsi tehnični vidiki izdelovanja iger - programiranje vseh vrst in oblik, modeliranje, animacija, risanje, dizajn, grafika, glasba in zvok, umetna inteligenca, matematika, fizika itd.

Re: pomoč

OdgovorNapisal/-a koscak » To Nov 22, 2011 6:34 pm

Ja nej bi bil če bom zakomentiral metek unega na sredini ne bo. Bom spremenil. levo je ladja desno pa una zakomentirana montažna ladja.(trenutno je ni ker so klici zakomentirani.)
koscak
wannabe
wannabe
 
Prispevkov: 97
Pridružen: Ne Nov 20, 2011 10:23 pm

Re: pomoč

OdgovorNapisal/-a koscak » To Nov 22, 2011 6:56 pm

Žal nič ni bolje pri 0.1 premiku.
koscak
wannabe
wannabe
 
Prispevkov: 97
Pridružen: Ne Nov 20, 2011 10:23 pm

Re: pomoč

OdgovorNapisal/-a koscak » To Nov 22, 2011 7:18 pm

Prišel sem do ugotovitve, da
http://www.shrani.si/f/3g/ex/DlM0IJL/primer4.png
še predan karkoli pritisnem izveda a, in kljub temu da je strel nastavljen na 0, on pride v funkcijo strel kar dokazujeta izpisa po kodi.
koscak
wannabe
wannabe
 
Prispevkov: 97
Pridružen: Ne Nov 20, 2011 10:23 pm

Re: pomoč

OdgovorNapisal/-a Blodyavenger » To Nov 22, 2011 8:22 pm

Verjetno zato ker nimaš inicializiranje tabele s tipkami.

Prvo kot prvo naredi to

bool tip[256]; // Create an array of boolean values of length 256 (0-255)

Nato v int main() inicializiraj vrednosti tabele:

Koda: Izberi vse
for( int i=0; i<256; i++)
{
   tip = false;
}


Pa naredi da se metek povečuje za 0.01

V C++ je zelo pomembno da se inicializira spremenljivko ker drugače ma lahko kr ene vrednosti
................ My personal GameDev Blog ...................
"Don't you dare using uninitialized variables, not in C++"
Uporabniški avatar
Blodyavenger
expert
expert
 
Prispevkov: 716
Pridružen: Pe Sep 12, 2008 3:31 pm
Kraj: Land of the Ten Hares

Re: pomoč

OdgovorNapisal/-a koscak » To Nov 22, 2011 8:42 pm

Javi mi napako morm dat tip[i]=false
To se je rešilo sedaj da ne izpisuje bedarij več vun. dal pa sem x+=0.01 ;)..
Ne strelja pa še kar ne..
http://www.shrani.si/f/1X/Lu/cXHI9qE/primer5.png
takole je sedaj, metek sem skril v ladjo (konstruktor), v prestavil da je metek skos skrit v ladji (v move sem dal tisto da se prestavlja)
Koda: Izberi vse
#include <windows.h>
#include <GL/glut.h>
#include <stdlib.h>
#include <iostream>
#include <math.h>
#include <ctime>
#include <vector>
#include <dos.h>
#include <unistd.h>
#define RADIUS 0.0
#define FPS 6000
#define PI 3.14
      void *font = GLUT_BITMAP_TIMES_ROMAN_24;
   bool tip[256]; // Create an array of boolean values of length 256 (0-255)
      using namespace std;
             class Ship {
                 public:
                 double vx, vy, x, y, r,kroglax, kroglay;
                 int zdravje;
                 int direction;
             Ship() {
               r = 0.09;
               x = -0.8;
               y = -0.8;
               direction = 0;
               kroglax=-0.8;
               kroglay=-0.8;
               zdravje=100;
              }
             ~Ship();
             void move(){
               izpis_zdravja();

               //brez tega gre moja ladjica za večno stran
               if (x > (1.0 + r) || x < (-1.0 - r))
               x = -x;
               if (y > (1.0 + r) || y < (-1.0 - r))
               y = -y;
               }
            void izpis_zdravja(){
                char a;
                int i,len;
                glRasterPos2f(0.8,0.8);
                glutBitmapCharacter(font,i=(int)zdravje );
               }
           void draw() {
                glBegin(GL_POLYGON);
                glColor3d(0.5, 0.5, 0.5);
                glVertex2f(sin((0 + direction)*PI/180)*r+x, cos((0 + direction)*PI/180)*r+y);
                glVertex2f(sin((140 + direction)*PI/180)*r+x, cos((140 + direction)*PI/180)*r+y);
                glVertex2f(sin((180 + direction)*PI/180)*r/4+x, cos((180 + direction)*PI/180)*r/4+y);
                glVertex2f(sin((220 + direction)*PI/180)*r+x, cos((220 + direction)*PI/180)*r+y);
                glEnd();
                 }
           void left() {
                direction = (direction - 6) % 360;
                 }
           void right() {
                direction = (direction + 6) % 360;
                 }
           void acc() {
                 x += sin(direction*PI/180)*0.01;
                 y += cos(direction*PI/180)*0.01;
               /*
               y+=0.1*sin(direction);
               x+=0.1*cos(direction);*/
               }
          void stop() {
                vx = 0;
                vy = 0;
               }
         void reset() {
                stop();
                direction = 1;
                x = 0;
                y = 0;
                }
               };
              Ship* ship;
        class montazna_ladja
           {public:
              double metekx, meteky, ladx, lady, ladr, metekr;
              int k;
              int direction;
        montazna_ladja() {
           metekr=0.07;
           ladr = 0.07;
           ladx = 0.8;
           lady = -0.8;
           k=0;
           direction = 0;
           }
    ~montazna_ladja();
      void move() {

       lady+=0.01;
//y+=0.0001;
   if(lady>1)
    ladx-=0.02;
    Sleep(100);
    double dx =  ship->x - ladx;
    double dy = ship->y - lady;
    double ar = ship->r+ ladr;
    dx=sqrt(dx*dx);
    dy=sqrt(dy*dy);
  if(dx<(0.5)&&dy<(0.1))
       {
      int i=0;
      metekx=ladx;
      meteky=lady;


        do
        {

       metekx-= 0.01;
       draw();
      i++;
      double dx =    ship->x - metekx;
      double dy = ship->y - meteky;
      double ar = ship->r+ metekr;
    if(dx*dx + dy*dy < ar*ar)
        {
      int a;
        a=ship->zdravje;
        a=a-10;
        ship->zdravje=a;
        if((ship->zdravje)==0)
        ship->reset();

             }

         }
         while(i<75);

      }
    if (ladx > (1.0) || ladx < (-1.0 - ladr))
      ladx = -ladx;
     if (lady > (1.0 + ladr) || lady < (-1.0 - ladr))
       lady = -lady;

      }
     void draw() {
      glBegin(GL_POLYGON);
      glColor3d(0.5, 0.5, 0.5);
      glVertex2f(sin((0 + direction)*PI/180)*ladr+ladx, cos((0 + direction)*PI/180)*ladr+lady);
      glVertex2f(sin((140 + direction)*PI/180)*ladr+ladx, cos((140 + direction)*PI/180)*ladr+lady);
      glVertex2f(sin((180 + direction)*PI/180)*ladr/4+ladx, cos((180 + direction)*PI/180)*ladr/4+lady);
      glVertex2f(sin((220 + direction)*PI/180)*ladr+ladx, cos((220 + direction)*PI/180)*ladr+lady);
      glEnd();
      }


      };
montazna_ladja* Montazna_ladja;

class metki{
public:
   double x, y, r;
   int smer,strel;
        // int direction;
   metki()
   {
      r = 0.07;
      x = -0.8;
      y = -0.8;
      strel = 0;  // <-------- nastavi vrednost na 0 (metek ne leti)
    }
    ~metki();
    void move()
    {
                x=ship->x;
                y=ship->y;
                smer=ship->direction;

      if(strel == 1)
      {

        x+= 0.01;
        cout<<"iuvajam strel";
      double dx = Montazna_ladja->ladx - x;
      double dy = Montazna_ladja->lady - y;
      double ar = Montazna_ladja->ladr + r;
      if(dx*dx + dy*dy < ar*ar)
      {   cout<<"zadel sem ladjo";
         ship->reset();
         strel = 0;
         x = ship->x;
         y = ship->y;
      }
      }
    }

    void draw()

     {

     glBegin(GL_POLYGON);
     glColor3d(0.5, 0.5, 0.5);
     glVertex2f(sin((0 + smer)*PI/180)*r+x, cos((0 + smer)*PI/180)*r+y);
     glVertex2f(sin((140 + smer)*PI/180)*r+x, cos((140 + smer)*PI/180)*r+y);
     glVertex2f(sin((180 + smer)*PI/180)*r/4+x, cos((180 + smer)*PI/180)*r/4+y);
     glVertex2f(sin((220 + smer)*PI/180)*r+x, cos((220 + smer)*PI/180)*r+y);
     glEnd();
     glBindTexture(GL_TEXTURE_2D,5);
     }

      };
metki  *Metki;


void tipkovnica (unsigned char tipka, int x, int y) {
tip[tipka] = true; // Set the state of the current key to pressed
cout<< tipka ;  //<-------------
}

void tipkovnica2 (unsigned char tipka, int x, int y) {
tip[tipka] = false; // Set the state of the current key to not pressed
}
          void pritisni (void) {

                if (tip['a'])

                  {    ship->left();
                  cout<<"a";  }

                 else  if (tip['d'])

                  {    ship->right();
                  cout<<"a";  }

                 else  if (tip['w'])

                  {     ship->acc();
                  cout<<"a";  }

                 else  if (tip['m'])
                   {

                     Metki->strel=1;
                     cout<<"a";                  }
                   else if(!((tip['a'])&&(tip['d'])&&(tip['w'])&&(tip['m'])))
                    {

                      }}



   static bool collision() {
        bool coll = false;
        // stik ladje z ladjo
        double dx = Montazna_ladja->ladx - ship->x;
        double dy = Montazna_ladja->lady - ship->y;
        double ar = Montazna_ladja->ladr + ship->r;
     if(dx*dx + dy*dy < ar*ar)
      {
          ship->reset();
      }
     // ostale stik
       return coll;
        }
  static void display()

       {

       glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
        // Izris
        ship->draw();
        Montazna_ladja->draw();
        Metki->draw();
        glFlush();
        glutSwapBuffers();
         }

    static void Update(int value)

         {pritisni();
           glutPostRedisplay();
           ship->move();
           Montazna_ladja->move();
          Metki->move();

          collision();
          }
int main(int argc, char** argv)    //             <---------------------------------------MAIN
{for( int i=0; i<256; i++)
{
   tip[i] = false;
}
// srand((unsigned)time(0));
         ship = new Ship();
         Montazna_ladja= new montazna_ladja();
         Metki= new metki();
         glutInit(&argc, argv);
         glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE);
         glutInitWindowPosition(10, 10);
         glutInitWindowSize(512, 512);
         glutCreateWindow("Krneki");
     glutKeyboardFunc(tipkovnica);
         glutKeyboardUpFunc(tipkovnica2);
              glutDisplayFunc(display);
         glutTimerFunc(1000/FPS, Update, 10); // <--------



         glutMainLoop();

return 1;
// system("pouse");
}
koscak
wannabe
wannabe
 
Prispevkov: 97
Pridružen: Ne Nov 20, 2011 10:23 pm

Re: pomoč

OdgovorNapisal/-a Blodyavenger » To Nov 22, 2011 9:45 pm

Ok...

Koda: Izberi vse
metki()
   {
      r = 0.07;
      x = -0.8;
      y = -0.8;
      strel = 0;  // <-------- nastavi vrednost na 0 (metek ne leti)
    }
    ~metki();
    void move()
    {
                x=ship->x; <-----
                y=ship->y; <---------
                smer=ship->direction;


Premakni x = ship->x ter y = ship->y v konstruktor, ker drugače bo vedno metek na meru.

Torej:
Koda: Izberi vse
metki()
   {
      r = 0.07;
      x = -0.8;
      y = -0.8;
      strel = 0;  // <-------- nastavi vrednost na 0 (metek ne leti)
      x=ship->x;
      y=ship->y;
    }
    ~metki();
    void move()
    {
                smer=ship->direction;


Ter naredi da se X od metka povečuje kar za 1 x += 1;

Seveda tudi to ne bo delovalo ker kakor zgleda ti ne zazna pritiska tipk. Bi ti moglo izpisat tudi "a" ko pristineš tipko "m". Poikraj se malo z izpisi ob pritisku tipk, preveri če se polje res nastavi na "true" ko pritisneš tipko itd. žal trenutno ne morem več pomagat ker se moram učit za prihajajoč kolokvij.

Mogoče napake / popravki
1.) V tabeli tipk, se vrednost ne nastavi na true
2.) Naredi v funkciji "pritisni()" for zanko, ki gre skozi tabelo tipk in izpiše le tisto število tipke, ki je pritisnjena
For( int i=0; i< 256; i++)
{
if(tip[i] == true)
cout << " tipka " << i << "je pritisnjena";
}

Razmišljaj, permišljaj, poskušaj in mogoče bo ratalo :)
................ My personal GameDev Blog ...................
"Don't you dare using uninitialized variables, not in C++"
Uporabniški avatar
Blodyavenger
expert
expert
 
Prispevkov: 716
Pridružen: Pe Sep 12, 2008 3:31 pm
Kraj: Land of the Ten Hares

Re: pomoč

OdgovorNapisal/-a koscak » To Nov 22, 2011 10:02 pm

Bom med vikendom nadeljeval sedaj pišem 2 testa v prihodnjih dneh. Najlepša ti hvala za pomoč ;) Ko pa narediš kolokvij se pa pripročam če mi ne rata, bom še naprej v tej temi objavil.
koscak
wannabe
wannabe
 
Prispevkov: 97
Pridružen: Ne Nov 20, 2011 10:23 pm

Re: pomoč

OdgovorNapisal/-a koscak » To Nov 22, 2011 10:49 pm

Ful čudno mi je leto ker prebere prav, prebere tako kot more bit prebere tipko ko tipko supustiš ni pritisnjena čudno...
kaj pa če bi mogu disply vržt v kako timer funkcijo, aja misliš da je pav ker je tam glutmainloop(); mogoče če bi dač do while(1);
koscak
wannabe
wannabe
 
Prispevkov: 97
Pridružen: Ne Nov 20, 2011 10:23 pm

Re: pomoč

OdgovorNapisal/-a koscak » Sr Nov 23, 2011 11:35 pm

Ekola sedaj pa dela.... Najlepša hvala ti za pomoč, res kaj bi brez tebe. ;) :oops: :lol: :oops: , v prve sem delal igrico sem se pa sedaj nučil kako mora biti narejena in v kakih funkcijah
Koda: Izberi vse
static void Update(int value)

         {pritisni();
           glutPostRedisplay();
         ship->move();
          Montazna_ladja->move();
          Metki->move();

          collision();
          glutTimerFunc(1000/FPS, Update, 1);
          }

Tukaj je bila napaka ..Namatrala pa sva se sedaj par dni, metki lepo delujejo vse se enakomerno giblje. Zanima pa me ali za metek naredim nov timer, ker se more gibat malo hitreje,..
Potem pa če je še kaka napaka mi povej.
PS najprej naredi kolokvij itd, potem pa ko boš mel kej časa pa nasvet povej ;)
koscak
wannabe
wannabe
 
Prispevkov: 97
Pridružen: Ne Nov 20, 2011 10:23 pm

Re: pomoč

OdgovorNapisal/-a Blodyavenger » Če Nov 24, 2011 1:21 am

Haha, zakon! Veš da ni problema, sm vesel da lahko pomagam če le upam :D Glede na to da prvič delaš te stvari si zelo dobro naredil vse, sploh pa da se si trudu in sam najdu rešitev problema.

Aha, vidim, torej je treba dodat še glutTimerFunc znotraj Update-a. Ja, problem je ker z GLUTom nisem še nikoli delal in je toliko teh knjižnic in vsaka ima kaj drugače da človek ne mora vsega vedeti :)

Pri metku ti ni treba novega timerja delat, le povečaš vrednost, za katero povečuješ X ( x += 0.01 ) to vrednost povečaš če hočeš da se metek hitreje premika. Skratka, kar moraš vedet je to, da se kliče Move() pri objektih vsako 1 milisekundo. Torej, če se X poveča za 0.01 v milisekundi, se bo premaknil za 10 pikslov na sekundo. Če narediš x += 1.0 potem bo metek naredil razdaljo 1000 pikslov v 1 sekundi.

Sedaj pa moraš it še skozi ostale objekte ter jih popravit če jih slučajno še nisi
- Premakni "Draw()" iz Move() funkcij (pač, ločit moraš kakor si pri metku)

Lahko ob priliki pošlješ zadnjo kodo pa bom mogoče jutri zvečer če bo čas pogledal pa kaj več povedal.

Še enkrat pohvalno da si rešu problem :)

EDIT: Hmm...sedaj imaš samo en metek a ne?
................ My personal GameDev Blog ...................
"Don't you dare using uninitialized variables, not in C++"
Uporabniški avatar
Blodyavenger
expert
expert
 
Prispevkov: 716
Pridružen: Pe Sep 12, 2008 3:31 pm
Kraj: Land of the Ten Hares

Re: pomoč

OdgovorNapisal/-a koscak » Če Nov 24, 2011 7:24 am

Aja tako kot sem predvidel, trenutno je samo 1 metek, ki pa gre večno stran, ko pritisneš m. Razmišljam da bi mel već metkov
Montazna ladja se vozi, Zanima me kam bom prestavil glavni meni (play, nastavitve itd..) Ker sedaj imam v mainu samo klice za play. Moram narediti sedaj da se bodo metki premikali z ladjo (bili skriti pod ladjo), ...
Koda: Izberi vse
#include <windows.h>
#include <GL/glut.h>
#include <stdlib.h>
#include <iostream>
#include <math.h>
#include <ctime>
#include <vector>
#include <dos.h>
#include <unistd.h>
#define RADIUS 0.0
#define FPS 6000
#define PI 3.14
      void *font = GLUT_BITMAP_TIMES_ROMAN_24;
   char tip[256]; // Create an array of boolean values of length 256 (0-255)
      using namespace std;
             class Ship {
                 public:
                 double vx, vy, x, y, r,kroglax, kroglay;
                 int zdravje;
                 int direction;
             Ship() {
               r = 0.09;
               x = -0.8;
               y = -0.8;
               direction = 0;
               kroglax=-0.8;
               kroglay=-0.8;
               zdravje=100;
              }
             ~Ship();
             void move(){
               izpis_zdravja();

               //brez tega gre moja ladjica za veèno stran
               if (x > (1.0 + r) || x < (-1.0 - r))
               x = -x;
               if (y > (1.0 + r) || y < (-1.0 - r))
               y = -y;
               }
            void izpis_zdravja(){
                char a;
                int i,len;
                glRasterPos2f(0.8,0.8);
                glutBitmapCharacter(font,i=(int)zdravje );
               }
           void draw() {
                glBegin(GL_POLYGON);
                glColor3d(0.5, 0.5, 0.5);
                glVertex2f(sin((0 + direction)*PI/180)*r+x, cos((0 + direction)*PI/180)*r+y);
                glVertex2f(sin((140 + direction)*PI/180)*r+x, cos((140 + direction)*PI/180)*r+y);
                glVertex2f(sin((180 + direction)*PI/180)*r/4+x, cos((180 + direction)*PI/180)*r/4+y);
                glVertex2f(sin((220 + direction)*PI/180)*r+x, cos((220 + direction)*PI/180)*r+y);
                glEnd();
                 }
           void left() {
                direction = (direction - 6) % 360;
                 }
           void right() {
                direction = (direction + 6) % 360;
                 }
           void acc() {
                 x += sin(direction*PI/180)*0.01;
                 y += cos(direction*PI/180)*0.01;
               /*
               y+=0.1*sin(direction);
               x+=0.1*cos(direction);*/
               }
          void stop() {
                vx = 0;
                vy = 0;
               }
         void reset() {
                stop();
                direction = 1;
                x = 0;
                y = 0;
                }
               };
              Ship* ship;
        class montazna_ladja
           {public:
              double metekx, meteky, ladx, lady, ladr, metekr;
              int k;
              int direction;
        montazna_ladja() {
           metekr=0.07;
           ladr = 0.07;
           ladx = 0.8;
           lady = -0.8;
           k=0;
           direction = 0;
           }
    ~montazna_ladja();
      void move() {

       lady+=0.01;
//y+=0.0001;
   if(lady>1)
    ladx-=0.02;
    Sleep(100);
    double dx =  ship->x - ladx;
    double dy = ship->y - lady;
    double ar = ship->r+ ladr;
    dx=sqrt(dx*dx);
    dy=sqrt(dy*dy);
  if(dx<(0.5)&&dy<(0.1))
       {
      int i=0;
      metekx=ladx;
      meteky=lady;


        do
        {

       metekx-= 0.01;
       draw();
      i++;
      double dx =    ship->x - metekx;
      double dy = ship->y - meteky;
      double ar = ship->r+ metekr;
    if(dx*dx + dy*dy < ar*ar)
        {
      int a;
        a=ship->zdravje;
        a=a-10;
        ship->zdravje=a;
        if((ship->zdravje)==0)
        ship->reset();

             }

         }
         while(i<75);

      }
    if (ladx > (1.0) || ladx < (-1.0 - ladr))
      ladx = -ladx;
     if (lady > (1.0 + ladr) || lady < (-1.0 - ladr))
       lady = -lady;

      }
     void draw() {
      glBegin(GL_POLYGON);
      glColor3d(0.5, 0.5, 0.5);
      glVertex2f(sin((0 + direction)*PI/180)*ladr+ladx, cos((0 + direction)*PI/180)*ladr+lady);
      glVertex2f(sin((140 + direction)*PI/180)*ladr+ladx, cos((140 + direction)*PI/180)*ladr+lady);
      glVertex2f(sin((180 + direction)*PI/180)*ladr/4+ladx, cos((180 + direction)*PI/180)*ladr/4+lady);
      glVertex2f(sin((220 + direction)*PI/180)*ladr+ladx, cos((220 + direction)*PI/180)*ladr+lady);
      glEnd();
      }


      };
montazna_ladja* Montazna_ladja;

class metki{
public:
   double x, y, r;
   int smer,strel;
        // int direction;
   metki()
   {
      r = 0.07;
      x = -0.8;
      y = -0.8;
      strel = 0;  // <-------- nastavi vrednost na 0 (metek ne leti)
    }
    ~metki();
    void move()
    {
           /*     x=ship->x;
                y=ship->y;
                smer=ship->direction;*/

      if(strel == 1)
      {

        x+= 0.01;
        cout<<"iuvajam strel";
      double dx = Montazna_ladja->ladx - x;
      double dy = Montazna_ladja->lady - y;
      double ar = Montazna_ladja->ladr + r;
      if(dx*dx + dy*dy < ar*ar)
      {   cout<<"zadel sem ladjo";
         ship->reset();
         strel = 0;
         x = ship->x;
         y = ship->y;
      }
      }
    }

    void draw()

     {

     glBegin(GL_POLYGON);
     glColor3d(0.5, 0.5, 0.5);
     glVertex2f(sin((0 + smer)*PI/180)*r+x, cos((0 + smer)*PI/180)*r+y);
     glVertex2f(sin((140 + smer)*PI/180)*r+x, cos((140 + smer)*PI/180)*r+y);
     glVertex2f(sin((180 + smer)*PI/180)*r/4+x, cos((180 + smer)*PI/180)*r/4+y);
     glVertex2f(sin((220 + smer)*PI/180)*r+x, cos((220 + smer)*PI/180)*r+y);
     glEnd();
     glBindTexture(GL_TEXTURE_2D,5);
     }

      };
metki  *Metki;


void tipkovnica (unsigned char tipka, int x, int y) {
tip[tipka] = true; // Set the state of the current key to pressed
cout<< tipka ;  //<-------------
}

void tipkovnica2 (unsigned char tipka, int x, int y) {
tip[tipka] = false; // Set the state of the current key to not pressed
}
          void pritisni (void) {

                if (tip['a'])

                  {    ship->left();
                  cout<<"a";  }

                 else  if (tip['d'])

                  {    ship->right();
                  cout<<"a";  }

                 else  if (tip['w'])

                  {     ship->acc();
                  cout<<"a";  }

                 else  if (tip['m'])
                   {

                     Metki->strel=1;
                     cout<<"jd";                  }
                   else if(!((tip['a'])&&(tip['d'])&&(tip['w'])&&(tip['m'])))
                    {

                      }}



   static bool collision() {
        bool coll = false;
        // stik ladje z ladjo
        double dx = Montazna_ladja->ladx - ship->x;
        double dy = Montazna_ladja->lady - ship->y;
        double ar = Montazna_ladja->ladr + ship->r;
     if(dx*dx + dy*dy < ar*ar)
      {
          ship->reset();
      }
     // ostale stik
       return coll;
        }
  static void display()

       {

       glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
        // Izris
        ship->draw();
        Montazna_ladja->draw();
        Metki->draw();
        glFlush();
        glutSwapBuffers();
         }

    static void Update(int value)

         {pritisni();
           glutPostRedisplay();
         ship->move();
          Montazna_ladja->move();
          Metki->move();

          collision();
          glutTimerFunc(1000/FPS, Update, 1);
          }
int main(int argc, char** argv)    //             <---------------------------------------MAIN
{for( int i=0; i<256; i++)
{
   tip[i] = false;
}
// srand((unsigned)time(0));



         ship = new Ship();
         Montazna_ladja= new montazna_ladja();
         Metki= new metki();
         glutInit(&argc, argv);
         glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE);
         glutInitWindowPosition(10, 10);
         glutInitWindowSize(512, 512);
         glutCreateWindow("Krneki");
     glutKeyboardFunc(tipkovnica);
         glutKeyboardUpFunc(tipkovnica2);
              glutDisplayFunc(display);
         glutTimerFunc(1000/FPS, Update, 10); // <--------
glutMainLoop();


return 1;
// system("pouse");
}
koscak
wannabe
wannabe
 
Prispevkov: 97
Pridružen: Ne Nov 20, 2011 10:23 pm

Re: pomoč

OdgovorNapisal/-a koscak » Če Nov 24, 2011 7:51 am

http://www.y8.com/games/cursed_winds

Kot tale igrica zelo všeč mi je da metki tako legendarno letijo ...
koscak
wannabe
wannabe
 
Prispevkov: 97
Pridružen: Ne Nov 20, 2011 10:23 pm

Re: pomoč

OdgovorNapisal/-a koscak » Pe Nov 25, 2011 10:44 pm

Sedaj sem dodelal igro, da se že premika, vse kodiram proceduro v update, sej je prav ane ?? ali ni (v zvezi metkom)
Potem pa ali slučajno veš kaj moram narediti, da se metek sproži moram spustiti vse tipke(w,s,d) in samo prijet tipko m kar je invalidno, ...
koscak
wannabe
wannabe
 
Prispevkov: 97
Pridružen: Ne Nov 20, 2011 10:23 pm

Re: pomoč

OdgovorNapisal/-a Blodyavenger » Če Dec 01, 2011 12:18 am

Heya! Zadnje dni sem zelo na tesnem s cajtom pa si nism vzel časa da bi še kaj pregledal, žal. No, bom pa odgovoru na to kar si vprašu :)

1.) Da, kar se tiče premikanja in to postavljaš v funkcijo Update, izris pa pod Display kamor si že dal metek npr.
2.) Pri tipkah moraš odstranit "else" med preverjanjem ker kakor imaš ti sedaj pomeni:
Če je pritisnjena tipka "a" premik v levo, če ni, ali je pritisnjena "w", če ni, ali je pritisnjena "m" itd. pobrisat moraš "else" pa bi moglo delovat

Na PM si mi še poslal da bi bilo večje število izstrelkov.

Sedaj imaš ti le eno instanco objekta Metki * metek. Če hočeš imet več instanc objektov boš moral implementirat listo objektov, najbolj preprosto je to
kar z uporabo vektorjev.

Uporaba:
Koda: Izberi vse
#include <vector.h>


Koda: Izberi vse
vector<Metek*> listaMetkov;  // s tem ustvarimo vektor metkov


Vsakič ko pristineš tipko "m" moraš ustvari objekt "Metek" ter ga postavit v listo. Seveda pa jih moraš tudi sproti brisat ali pa ti bo le filalo pomnilnik in metki bodo potovali v neskončnost in slej kot prej se ti bo program sesu. Tako da ob koliziji oz. ko odide metek iz ikrana določiš da je metek pripravljen za izbris.

Lahko dodaš neko spremenljivko v metek int readytoclear = 0;

Koda: Izberi vse
Metek * tmp = new Metek();
tmp->x = ...
tmp->y = ...

//pač, določiš vrednosti metku, nato pa ga dodaš v listo
Koda: Izberi vse
listaMetkov.push_back(tmp);


Tako, metek je dodan v listo, sedaj pa moraš še celotno listo posodabljat ter izrisovat
Koda: Izberi vse
for( int i=0; i<listaMetkov.size(); i++ )
{
     if( !listaMetkov.at(i)->readytoclear )
          listaMetkov.at( i )->Move(); else
     listaMetkov.clear( listaMetkov.begin() + i );
}

Pred posodobitvijo preverimo, če je metek pripravljen za izbris ali ne. Če ni ga posodobimo obratno pa ga izbrišemo.

za izris pa podobno

Koda: Izberi vse
for( int i=0; i<listaMetkov.size(); i++ )
{
     listaMetkov.at( i )->Draw();
}


Če so nejasnosti kam postavit kose kode kar reči :)
................ My personal GameDev Blog ...................
"Don't you dare using uninitialized variables, not in C++"
Uporabniški avatar
Blodyavenger
expert
expert
 
Prispevkov: 716
Pridružen: Pe Sep 12, 2008 3:31 pm
Kraj: Land of the Ten Hares

Re: pomoč

OdgovorNapisal/-a koscak » Če Dec 01, 2011 1:06 pm

Ker so metki potovali v neskončnost sem zadevo rešil takole.. z i-jem ki ga povečujem do 670 potem pa ko pride na 680 pa ga zapre, ...
Uno zgoraj razumem se pa bom posvetil dodajanjem malo kasneje, hvala za pomoč
sem dodal takole..

Koda: Izberi vse
void move()
    {
           /*     x=ship->x;
                y=ship->y;
                smer=ship->direction;*/

      if(strel == 1)
        {
         i++;
         cout<<" "<<i;
         x+= 0.003;

         double dx = Sovrazna_ladja->ladx - x;
         double dy = Sovrazna_ladja->lady - y;
         double ar = Sovrazna_ladja->ladr + r;
             if(dx*dx + dy*dy < ar*ar)
              {

             ship->reset();
             strel = 0;
             i=0;
              }

      if(i>=670)
          {
           strel=0;
           i=0;
           }
    }

    }
    void draw()

     {
koscak
wannabe
wannabe
 
Prispevkov: 97
Pridružen: Ne Nov 20, 2011 10:23 pm

Re: pomoč

OdgovorNapisal/-a RedReaper132 » Če Dec 01, 2011 2:21 pm

Kar je predlagal Bloody je zelo dobro. Vendar pa pazi pri brisanju metkov iz list, saj ce ne bos izbrisal pravilno, bos imel memory leak. Oprostite, da ni sumnikov, ampak pisem na angleski tipkovnici na Irskem :)
Moj bla, bla, bla, bljak blog: http://redgamedevblog.blogspot.com/
Uporabniški avatar
RedReaper132
wannabe
wannabe
 
Prispevkov: 116
Pridružen: To Apr 21, 2009 4:32 pm
Kraj: Središče

Re: pomoč

OdgovorNapisal/-a Blodyavenger » Če Dec 01, 2011 7:10 pm

Če hočeš da metek izgine po določenem času, potem je to vredu rešitev z i-jem (to pomeni da bo metek izginil po 680 ms) torej ne bo letel niti 1 sekundo.
Seveda pa je tudi fajn da se doda še ostale možne pogoje za uničit metek, ker ko enkrat pride v igro veliko objektov je to več kot dobrodošlo, da se ne nabira preveč jih hkrati.

Kot npr.
Koda: Izberi vse
if( x > 640 || x < 0) unicimetek = true;
if( y > 480 || y < 0) unicimetek = true;
................ My personal GameDev Blog ...................
"Don't you dare using uninitialized variables, not in C++"
Uporabniški avatar
Blodyavenger
expert
expert
 
Prispevkov: 716
Pridružen: Pe Sep 12, 2008 3:31 pm
Kraj: Land of the Ten Hares

Re: pomoč

OdgovorNapisal/-a koscak » Če Dec 01, 2011 10:24 pm

Jap več bo objktov računat je potrebno 10 ledjic+1moja vsaka od 10 ladij ima 20 topov(20metkov) in moja ladja ima 50 topov Tako sem se zamislil .Tako da bo veliko objektov.
Kake pa omejitve če smem vprašat bi bilo fajn dodat.
koscak
wannabe
wannabe
 
Prispevkov: 97
Pridružen: Ne Nov 20, 2011 10:23 pm

Re: pomoč

OdgovorNapisal/-a pony » Pe Dec 02, 2011 12:36 pm

Ni se mi dalo brat celotne teme, vendar na začetku ima komentiran glClearColor ?
Mogoče je to problem.
pony
novinec
novinec
 
Prispevkov: 12
Pridružen: Če Okt 27, 2011 8:06 pm

Re: pomoč

OdgovorNapisal/-a koscak » To Dec 13, 2011 10:58 pm

Aja zanima me ali ladjice enkao z vektorji, zanima me tudi potem collision mora preverjati verjetno v neki for zanki ane.
Ali kako drugo foro uprabim za ladjice ali enako z vektoriji.
koscak
wannabe
wannabe
 
Prispevkov: 97
Pridružen: Ne Nov 20, 2011 10:23 pm

Re: pomoč

OdgovorNapisal/-a Blodyavenger » Sr Dec 14, 2011 11:40 pm

Ja, če boš imel večje število ladjic vsekakor tudi njih spravi v vektor. Collision, move (nasplošno kar se tiče Update-a) klice pa spravi v zanko kakor sem ti že nekaj postov nazaj pokazal.

A metke si že dal v vektor? Deluje? :)
................ My personal GameDev Blog ...................
"Don't you dare using uninitialized variables, not in C++"
Uporabniški avatar
Blodyavenger
expert
expert
 
Prispevkov: 716
Pridružen: Pe Sep 12, 2008 3:31 pm
Kraj: Land of the Ten Hares

Re: pomoč

OdgovorNapisal/-a koscak » Sr Dec 14, 2011 11:51 pm

Ne še naslednji teden se vržem v igro, sedaj imam preveč testov.
jutri php, petek matematika, pondeljek sociologija in anj govorna in sreda fizika, tako da verjetno začnem z vektorji in izdelavo igrce v sredo, če ne bo spremembe ;)
koscak
wannabe
wannabe
 
Prispevkov: 97
Pridružen: Ne Nov 20, 2011 10:23 pm

Re: pomoč

OdgovorNapisal/-a koscak2 » Sr Dec 21, 2011 11:19 am

Pozdravljeni, spet sem nazaj z navdihom da dokončam to igrico :D
Ustavilo se mi je pri vektorjih . Problem je ko pritisnem tipko za strel potem drugi problem je še ostalo enostavno pvoedano ne vem če sem prav vstavil notri vektorje za lažje sem iskanje vk odi sem spremenil barve kode.
Koda: Izberi vse
#include <windows.h>
#include <GL/glut.h>
#include <stdlib.h>
#include <iostream>
#include <math.h>
#include <vector>
#define RADIUS 0.0
#define FPS 60
#define PI 3.14
#define METKI 10
      void *font = GLUT_BITMAP_TIMES_ROMAN_24;
      char tip[256]; // Create an array of boolean values of length 256 (0-255)
      using namespace std;

             class Ship {
                 public:
                 double vx, vy, x, y, r,kroglax, kroglay;
                 int zdravje;
                 int direction;
             Ship() {
               r = 0.09;
               x = -0.8;
               y = -0.8;
               direction = 0;
               kroglax=-0.8;
               kroglay=-0.8;
               zdravje=100;
              }
             ~Ship();
             void move(){
               izpis_zdravja();

               //brez tega gre moja ladjica za veèno stran
               if (x > (1.0 + r) || x < (-1.0 - r))
               x = -x;
               if (y > (1.0 + r) || y < (-1.0 - r))
               y = -y;
               }
            void izpis_zdravja(){
                char a;
                int i,len;
                glRasterPos2f(0.8,0.8);
                glutBitmapCharacter(font,i=(int)zdravje );
               }
           void draw() {
                glBegin(GL_POLYGON);
                glColor3d(0.5, 0.5, 0.5);
                glVertex2f(sin((0 + direction)*PI/180)*r+x, cos((0 + direction)*PI/180)*r+y);
                glVertex2f(sin((140 + direction)*PI/180)*r+x, cos((140 + direction)*PI/180)*r+y);
                glVertex2f(sin((180 + direction)*PI/180)*r/4+x, cos((180 + direction)*PI/180)*r/4+y);
                glVertex2f(sin((220 + direction)*PI/180)*r+x, cos((220 + direction)*PI/180)*r+y);
                glEnd();
                 }
           void left() {
                direction = (direction - 6) % 360;
                 }
           void right() {
                direction = (direction + 6) % 360;
                 }
           void acc() {
                 x += sin(direction*PI/180)*0.01;
                 y += cos(direction*PI/180)*0.01;
               /*
               y+=0.1*sin(direction);
               x+=0.1*cos(direction);*/
               }
          void stop() {
                vx = 0;
                vy = 0;
               }
         void reset() {
                stop();
                direction = 1;
                x = 0;
                y = 0;
                }
               };
              Ship* ship;
        class sovrazna_ladja
           {public:
              double metekx, meteky, ladx, lady, ladr, metekr;
              int k;
              int direction;
        sovrazna_ladja() {
           metekr=0.07;
           ladr = 0.07;
           ladx = 0.8;
           lady = -0.8;
           k=0;
           direction = 0;
           }
    ~sovrazna_ladja();
       void move() {

         lady+=0.003;
        //y+=0.0001;
         if(lady>1)
          ladx-=0.02;
           double dx =  ship->x - ladx;
           double dy = ship->y - lady;
           double ar = ship->r+ ladr;
           dx=sqrt(dx*dx);
           dy=sqrt(dy*dy);
         if(dx<(0.5)&&dy<(0.1))
           {
           int i=0;
          metekx=ladx;
          meteky=lady;
/*
      )
        do
        {

       metekx-= 0.01;
       draw();
      i++;
      double dx =    ship->x - metekx;
      double dy = ship->y - meteky;
      double ar = ship->r+ metekr;
                 if(dx*dx + dy*dy < ar*ar)
                     {
                      int a;
                      a=ship->zdravje;
                      a=a-10;
                      ship->zdravje=a;
                      if((ship->zdravje)==0)
                      ship->reset();

             }

         }
         while(i<75);
         */

      }
    if (ladx > (1.0) || ladx < (-1.0 - ladr))
      ladx = -ladx;
     if (lady > (1.0 + ladr) || lady < (-1.0 - ladr))
       lady = -lady;

      }
     void draw() {
      glBegin(GL_POLYGON);
      glColor3d(0.5, 0.5, 0.5);
      glVertex2f(sin((0 + direction)*PI/180)*ladr+ladx, cos((0 + direction)*PI/180)*ladr+lady);
      glVertex2f(sin((140 + direction)*PI/180)*ladr+ladx, cos((140 + direction)*PI/180)*ladr+lady);
      glVertex2f(sin((180 + direction)*PI/180)*ladr/4+ladx, cos((180 + direction)*PI/180)*ladr/4+lady);
      glVertex2f(sin((220 + direction)*PI/180)*ladr+ladx, cos((220 + direction)*PI/180)*ladr+lady);
      glEnd();
      }


      };
sovrazna_ladja* Sovrazna_ladja;

class metki{
public:
   double x, y, r;
   int smer,strel;
   int i;
        // int direction;
   metki()
   {
      r = 0.02;
      x = -0.8;
      y = -0.8;
      strel = 0;// <-------- nastavi vrednost na 0 (metek ne leti)
      i=0;
    }
    ~metki();
    void move()
    {
           /*     x=ship->x;
                y=ship->y;
                smer=ship->direction;*/

      if(strel == 1)
        {
         i++;
         cout<<" "<<i;
         x+= 0.003;

         double dx = Sovrazna_ladja->ladx - x;
         double dy = Sovrazna_ladja->lady - y;
         double ar = Sovrazna_ladja->ladr + r;
             if(dx*dx + dy*dy < ar*ar)
              {

             ship->reset();
             strel = 0;
             i=0;
              }

      if(i>=670)
          {
           strel=0;
           i=0;
           }
    }

    }
    void draw()

     {

     glBegin(GL_POLYGON);
     glColor3d(0.5, 0.5, 0.5);
     glVertex2f(sin((0 + smer)*PI/180)*r+x, cos((0 + smer)*PI/180)*r+y);
     glVertex2f(sin((140 + smer)*PI/180)*r+x, cos((140 + smer)*PI/180)*r+y);
     glVertex2f(sin((180 + smer)*PI/180)*r/4+x, cos((180 + smer)*PI/180)*r/4+y);
     glVertex2f(sin((220 + smer)*PI/180)*r+x, cos((220 + smer)*PI/180)*r+y);
     glEnd();
     glBindTexture(GL_TEXTURE_2D,5);
     }

      };

vector<metki*> Metki;  // s tem ustvarimo vektor metkov

void tipkovnica (unsigned char tipka, int x, int y) {
tip[tipka] = true; // Set the state of the current key to pressed
cout<< tipka ;  //<-------------
}

void tipkovnica2 (unsigned char tipka, int x, int y) {
tip[tipka] = false; // Set the state of the current key to not pressed
}
          void pritisni (void) {

                if (tip['a'])

                  {    ship->left();
                  cout<<"a";  }

                if (tip['d'])

                  {    ship->right();
                  cout<<"a";  }

                  if (tip['w'])

                  {     ship->acc();
                  cout<<"a";  }

                  if (tip['m'])
                   {
            [color=#FF0000]          for(int i=0; i<Metki.size()-1; i++) {
                     Metki[i]->strel=1;
                     cout<<"jd";   }[/color]
                                  }
          }



   static bool collision() {
        bool coll = false;
        // stik ladje z ladjo
        double dx = Sovrazna_ladja->ladx - ship->x;
        double dy = Sovrazna_ladja->lady - ship->y;
        double ar = Sovrazna_ladja->ladr + ship->r;
     if(dx*dx + dy*dy < ar*ar)
      {
          ship->reset();
      }
     // ostale stik
       return coll;
        }
  static void display()

       {

       glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
        // Izris
           ship->draw();
           Sovrazna_ladja->draw();
     [color=#FF0000]     for(int i=0; i<Metki.size()-1; i++) {
        if(Metki[i]->strel==1)
        {
           Metki.at(i)->draw();
        }
        else
         {
            Metki[i]->x = ship->x;
            Metki[i]->y = ship->y;
         }[/color]

         glFlush();
         glutSwapBuffers();
         }}

    static void Update(int value)

         {pritisni();
           glutPostRedisplay();
         ship->move();
          Sovrazna_ladja->move();
   [color=#FF0000]for(int i=0; i<Metki.size()-1; i++) {
          Metki[i]->move();
   }[/color]
          collision();
          glutTimerFunc(1000/FPS, Update, 1);
          }
int main(int argc, char** argv)    //             <---------------------------------------MAIN
{for( int i=0; i<256; i++)
{
   tip[i] = false;
}
// srand((unsigned)time(0));



          ship = new Ship();
         [color=#FF0000] for (int i=0; i<METKI; i++) {
      Metki.push_back(new metki());}
//      cout << asteroids[i]->x << " " << asteroids[i]->y << endl;
[/color]
          Sovrazna_ladja= new sovrazna_ladja();

          glutInit(&argc, argv);
          glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE);
          glutInitWindowPosition(10, 10);
          glutInitWindowSize(512, 512);
          glutCreateWindow("Krneki");
          glutKeyboardFunc(tipkovnica);
          glutKeyboardUpFunc(tipkovnica2);
          glutDisplayFunc(display);
          glutTimerFunc(FPS, Update, 10); // <--------
          glutMainLoop();


return 1;
// system("pouse");
}
koscak2
novinec
novinec
 
Prispevkov: 1
Pridružen: Sr Dec 21, 2011 11:15 am

Re: pomoč

OdgovorNapisal/-a koscak » Sr Dec 21, 2011 6:47 pm

Najdu kodo :D Odkril sem problem jaz nove objekte kličem v main ali bo to mogel prestavit kam drugam (ladja,sovražnaladja in metek .)
koscak
wannabe
wannabe
 
Prispevkov: 97
Pridružen: Ne Nov 20, 2011 10:23 pm

Re: pomoč

OdgovorNapisal/-a Blodyavenger » Sr Dec 21, 2011 7:39 pm

Za premikanje metkov kličeš na pravem mestu, popravit moraš le kako kličeš Move().

TVOJA KODA:
Koda: Izberi vse
for(int i=0; i<Metki.size()-1; i++)
{
     Metki[i]->move();
}

PRAVILNA KODA:
Koda: Izberi vse
for(int i=0; i<Metki.size()-1; i++)
{
     Metki.at(i)->move();
}


-------------------------------------------------------------------------------------
Napačno maš pri kreiranju metkov. Ti trenutno kličeš kreiranje metkov v funkciji main, torej na začetku. Kar se tukaj zgodi je to, da ustvariš toliko metkov kolikor jih je trenutno v vektorju (na začetku je vektor prazen, torej ustvariš 0 metkov). Drugi problem pri temu je, da ne rabiš ustvari na začetku vseh metkov, zakaj le? Objekte kot so metki, jih ustvarjaš sproti kadar to potrebuješ. Ga ustvariš in ko opravi svoje ga pobrišeš...tako gre to.

Torej, tisto pobriši kjer imaš for zanko s push back za metke.

Funkcijo za kreiranja metka boš klical ob pritisku na tipko "m"

Koda: Izberi vse
if (tip['m'])
{
    Metki.push_back(new metki()); <---
    cout<<"Metek ustvarjen";   
}


Poleg tega pa moraš v konstruktorju metka nastavit strel na 1 namesto na 0, saj ko ustvarimo metek predpostavimo da že leti oz. da je že aktiven.

To je to, ko boš pritisnil "m" se bo ustvaril objekt metka, kateri bo že potoval dalje. Prvo naredi to pa da ti metki lepo letijo okoli, potem pa gremo dalje :)
................ My personal GameDev Blog ...................
"Don't you dare using uninitialized variables, not in C++"
Uporabniški avatar
Blodyavenger
expert
expert
 
Prispevkov: 716
Pridružen: Pe Sep 12, 2008 3:31 pm
Kraj: Land of the Ten Hares

Re: pomoč

OdgovorNapisal/-a koscak » Pe Dec 23, 2011 11:57 pm

Izdelujem igro Vojna ladij..
Obrnil sem se vas in brez bloodyove pomoči bi mi veliko počasnejše uspelo, priti do sem.
Sedaj pa rabim kake vašo idejo, kako in kaj zato sem igrico objavil in če ima kdo kak konstruktivni predlog kako in kaj spreminit, se mu zahvaljujem. Če odkrije kak bug pa tudi ;) Točne naj opiše kdaj se mu je pojavu itd ..
Hvala vsem skupaj
Vesele praznike!
Krmilite z malimi tipkami w,a,d in streljate z m


lp
Matej
Priponke
ladjice1.0.rar
(296.06 KiB) Prenešeno 34 krat
Zadnjič spremenil koscak, dne Ne Dec 25, 2011 11:27 pm, skupaj popravljeno 1 krat.
koscak
wannabe
wannabe
 
Prispevkov: 97
Pridružen: Ne Nov 20, 2011 10:23 pm

Re: pomoč

OdgovorNapisal/-a impulse9 » Ne Dec 25, 2011 7:38 pm

Ce dajes stvari na heap, potem za vsak new napisi se ustrezen delete, sicer pride do memory leakov.

Pa mogoce bi lahko delal malo na svojem coding stylu (malo nepregledno uporabljas indente - click click). :)

Predlagam, da poskusis najti neko texturo za ladje / vodo / krogle, pa bo vse skupaj izpadlo veliko bolj avtenticno. :)

Good luck in pa vesele praznike.
What
Uporabniški avatar
impulse9
SGD Moderator
SGD Moderator
 
Prispevkov: 397
Pridružen: Pe Jan 10, 2003 10:14 pm

Re: pomoč

OdgovorNapisal/-a koscak » Če Dec 29, 2011 6:07 pm

Ekola sedaj pa ta verzija če kdo odkrije bug naj psoroči.
Priponke
Desktop.rar
(306.09 KiB) Prenešeno 32 krat
koscak
wannabe
wannabe
 
Prispevkov: 97
Pridružen: Ne Nov 20, 2011 10:23 pm

Re: pomoč

OdgovorNapisal/-a koscak » So Dec 31, 2011 5:33 pm

Sedaj pa izboljšana verzija, če kdo lahko kaj sproba bi bil vesel, pa pove svoje mnenje :)
Rdeči so life , čudne oblike so ledenik unih ladjic ki so v tropu jih je potrebno sestreliti ;)
Streljate na m

lp
Priponke
Debug.rar
(314.43 KiB) Prenešeno 36 krat
koscak
wannabe
wannabe
 
Prispevkov: 97
Pridružen: Ne Nov 20, 2011 10:23 pm

Prejšnja

Vrni se na Izdelovanje iger

Kdo je na strani

Po forumu brska: 0 registriranih uporabnikov in 1 gost

cron