jegor377 Temat założony przez niniejszego użytkownika |
Dwuwymiarowa tablica dynamiczna obiektów z wywołaniem konstruktora. [C++] » 2014-12-26 18:46:35 Witam! Mam problem o tuż, chcę stworzyć dwuwymiarową tablicę dynamiczną obiektów z wywołaniem konstruktora. Próbowałem już wszystkich dotąd poznanych mi sposobów i kupa, nie działa mi ta gra... Generalnie mam coś takiego: GameObject ** GO = new GameObject *[ gameobjects_x ]; for( int a = 0; a <= gameobjects_x; a++ ) { for( int b = 0; b <= gameobjects_y; b++ ) { GO[ a ] = new GameObject[ b ]; } } for( int y = 0; y <= gameobjects_y; y++ ) { for( int x = 0; x <= gameobjects_x; x++ ) { GO[ x ][ y ].type = 0; GO[ x ][ y ].xpos = x * 32; GO[ x ][ y ].ypos = y * 32; GO[ x ][ y ].xsize = 32; GO[ x ][ y ].ysize = 32; GO[ x ][ y ].xcpos = 0; GO[ x ][ y ].ycpos = 0; GO[ x ][ y ].xcsize = 64; GO[ x ][ y ].ycsize = 64; GO[ x ][ y ].angle = 0.0; GO[ x ][ y ].animation = false; cout << x << " " << y << endl; } }
Ale to jest bardzo badziewny pomysł, bo jak włączam program to zanim on zapisze te dane mija z 20s, a to za dużo... Wcześniej miałem łatwiejszy sposób, ale za nic nie dało się wysłać tej tablicy do funkcji... GameObject * tablica[ 10 ][ 10 ]; for( int y = 0; y <= 100; y++ ) { for( int x = 0; x <= 100; x++ ) { tablica[ x ][ y ] = new GameObject( tutaj dawa ł em parametry ); } }
I jakoś tak to mniej więcej wyglądało, ale gdy chciałem wysłać tą tablicę do funkcji to niby wysłałem, ale były błędne dane... void funkcja( GameObject ** tablica ) { ; }
Tak jakoś ją wysyłałem, bo GameObject * tablica to już się nawet nie kompilowało. A teraz to o co mi chodzi, czyli: Jak stworzyć taką tablicę z wywołaniem konstruktora i jak ją wysłać do funkcji i to tak by wysłać oryginał :) PS. Z góry THX!!! |
|
jegor377 Temat założony przez niniejszego użytkownika |
» 2014-12-26 19:28:29 na razie wymyśliłem jak wywołać ten konstruktor, ale dalej to jest zbyt powolne :( GameObject ** GO = new GameObject *[ gameobjects_x ]; for( int a = 0; a <= gameobjects_x; a++ ) { for( int b = 0; b <= gameobjects_y; b++ ) { GO[ a ] = new GameObject[ b ]; } } for( int y = 0; y <= gameobjects_y; y++ ) { for( int x = 0; x <= gameobjects_x; x++ ) { GO[ x ][ y ] = GameObject( 1, 12, 8, 0, 0, 0, 0, 0, 0, 0.0, false, 0, 0, 0, 0, 0, 0, 0 ); cout << x << " " << y << endl; } }
Więc teraz potrzebuje to wpisać przy stworzeniu obiektu... |
|
jegor377 Temat założony przez niniejszego użytkownika |
» 2014-12-26 19:32:44 JUŻ WIEM! TO WSZYSTKO DLA TEGO, ŻE WYWOŁYWAŁEM FUNKCJE COUT, A TO SPOWOLNIAŁO TEN PROGRAM! TERAZ JAK JĄ USUNĄŁEM TO PROGRAM ZAPIEPRZA JAK DZIKI! GameObject ** GO = new GameObject *[ gameobjects_x ]; for( int a = 0; a <= gameobjects_x; a++ ) { for( int b = 0; b <= gameobjects_y; b++ ) { GO[ a ] = new GameObject[ b ]; } } for( int y = 0; y <= gameobjects_y; y++ ) { for( int x = 0; x <= gameobjects_x; x++ ) { GO[ x ][ y ] = GameObject( 1, 12, 8, 0, 0, 0, 0, 0, 0, 0.0, false, 0, 0, 0, 0, 0, 0, 0 ); } }
JEST!!!!!!!!!!!!!!!!! |
|
Mateus. |
» 2014-12-26 20:29:38 Na przyszłość: wstawiaj kod w znaczniki |
|
jegor377 Temat założony przez niniejszego użytkownika |
» 2014-12-26 20:37:37 @up ok :) |
|
« 1 » |