Skocz do zawartości

Obiekty w tablicy


Cekol

Rekomendowane odpowiedzi

Mam taki kod: (obiekt.h)

class Instance
{
     public:
     unsigned int x , y , id , type;

     void step();
};

void Instance::step()
{
    Draw_wall(x,y);
}

int obiects=0;
Instance instance[45000];

void instance_create(int cx, int cy)
{    
    
    Instance instance[obiects];
    instance[obiects].x = cx;
    instance[obiects].y = cy;
    instance[obiects].id =  obiects;
    obiects+=1;
    
}

void instance_step()
{    
    Draw_wall(obiects,0); // dla testu lol
    
    for(int i=1; i<=obiects;i++)

    //instance[i].step();
    Draw_wall(instance[i].x ,instance[i].y);

}

Problem w tym, że gdy tworze obiekt za pomocą instance_create(x,y) to tworzy sie obiekt, lecz jego wartości x,y,id są równe 0 (wszystkie kwadraciki rysują się w lewym górnym rogu a id wynosi 0), a nie takie jak są podane.

Jak to naprawić?

Prosił bym o nie pisanie postów typu "Lepiej to zrób na vektorach" itp itd, tylko jak to zrobić na tablicach!oneone

Odnośnik do komentarza
Udostępnij na innych stronach

Lol...

void instance_create(int cx, int cy)
{    
    Instance instance[obiects]; // WTF?!
    instance[obiects].x = cx;
    instance[obiects].y = cy;
    instance[obiects].id =  obiects;
    obiects+=1;
}

Un. Po cholerę tworzysz nową tablicę?

Deux. Patrz jak to robią miszcze:

void instance_create(int cx, int cy)
{
    instance[obiects].x = cx;
    instance[obiects].y = cy;
    instance[obiects].id =  obiects++;
}

 

Trois. Lepiej operuj na wskaźnikach:

Instance *objArray[1024];

instance_create(...)

objArray[objCount] = new Instance( x, y );

W konstruktorze 'Instance':

id = objCount++;

 

Btw. instance_destroy( obj : &InstancePtr )

delete obj;
obj = 0;

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...