Skocz do zawartości

Tablice 3D lub inny optymalny sposob?


Nirvan

Rekomendowane odpowiedzi

Hej, robie sobie ten edytor animacji szkieletowej i potrzebuję czegoś w stylu tablicy 3D w kazdej kosci.

Musi to działać mniej więcej tak:

 

kazda kosc ma tablice key[ i, j, k ]

gdzie i to id animacji, j - nr keya, k - typ zmiennej np frame, angle, scale.

Zrobilem juz pelno funkcji do przesowania/wstawiania keyow itp ale zobaczylem wczoraj ze GM nie wspiera tablic 3D.

Wiem że są jakieś obejścia ale ponoć nie optymalne.

Da się to może jakoś zrobić żeby działało szybciej?

(Nie chce wykorzystywać funkcji gma np ds_list itp)

Odnośnik do komentarza
Udostępnij na innych stronach

Znalazłem takie coś o na yoyogames:

GML
// First dimension

cube[0, 0] = 1;

cube[0, 1] = 2;

cube[0, 2] = 3;

// Second dimension

cube[1, 0] = 4;

cube[1, 1] = 5;

cube[1, 2] = 6;

cube[2, 0] = 7;

cube[2, 1] = 8;

cube[2, 2] = 9;

cube[3, 0] = 10;

cube[3, 1] = 11;

cube[3, 2] = 12;

// Third dimension

cube[4, 0] = "0,0,0";

cube[4, 1] = "0,0,1";

cube[4, 2] = "0,0,2";

cube[5, 0] = "0,1,0";

cube[5, 1] = "0,1,1";

cube[5, 2] = "0,1,2";

cube[6, 0] = "0,2,0";

cube[6, 1] = "0,2,1";

cube[6, 2] = "0,2,2";

cube[7, 0] = "1,0,0";

cube[7, 1] = "1,0,1";

cube[7, 2] = "1,0,2";

cube[8, 0] = "1,1,0";

cube[8, 1] = "1,1,1"; // midpoint

cube[8, 2] = "1,1,2";

cube[9, 0] = "1,2,0";

cube[9, 1] = "1,2,1";

cube[9, 2] = "1,2,2";

cube[10, 0] = "2,0,0";

cube[10, 1] = "2,0,1";

cube[10, 2] = "2,0,2";

cube[11, 0] = "2,1,0";

cube[11, 1] = "2,1,1";

cube[11, 2] = "2,1,2";

cube[12, 0] = "2,2,0";

cube[12, 1] = "2,2,1";

cube[12, 2] = "2,2,2";

 

http://gmc.yoyogames.com/index.php?showtopic=571988

Odnośnik do komentarza
Udostępnij na innych stronach

Lubię zwięzły zapis, nie zastanawiałem się jak by to moglo tak wyglądać.

 

Musi byc rozpoznawane id animacji

potem do tej animacji rozpoznawane rozne keye

a w keyach rozne zmienne

 

animId[0]

key[0]

variables[0]

...

na 1d nie da rady tego zrobic

Odnośnik do komentarza
Udostępnij na innych stronach

sory ds_map pomylilo mi sie

ale nie moge odczytac wartosci

bo np dam ds_list_add( key, "frame", 0)

to odczytywanie poprzez ds_list_find_value jak dla mnie to jakos wolno dziala

 

edit: chociaz moze nie tak strasznie, ale z 4x wolniej niz zwykle przypisywanie wartosci zmiennej

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ę...