Cekol Opublikowano 22 Stycznia 2010 Udostępnij Opublikowano 22 Stycznia 2010 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 Więcej opcji udostępniania...
Konrad-GM Opublikowano 22 Stycznia 2010 Udostępnij Opublikowano 22 Stycznia 2010 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 Więcej opcji udostępniania...
Rekomendowane odpowiedzi
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ę