Snake, dlaczego tak uważasz? =o Od dawna z tego korzystam. Działa, w dodatku dobrze. :)
Marek.S:
Bo to w dalszym ciągu jest tablica dwuwymiarowa, tylko zapisana tak, żeby można jaj było użyć jak czterowymiarowej. Tylko żeby wszytko działało, w tablicach tablica2 i tablica3 musisz pozapisywać wartości od 0 do iluśtam. Zaraz z edytuję i dam przykład zastosowania.
Prosta baza danych:
GML
temp = 0;
for ( i = 0; i < 100; i += 1 )
{
for ( j = 0; j < 100; j += 1 )
{
global.tab [ i , j ] = temp;
global.tab2 [ i , j ] = temp;
temp += 1;
}
}
// Przykładowe wpisy do bazy:
global.dane [ global.tab [ 0 , 0 ] , global.tab2 [ 0 , 0 ] ] = 'jakies-tam-dane';
global.dane [ global.tab [ 5 , 5 ] , global.tab2 [ 4 , 9 ] ] = 'jeszcze-inne-dane';
global.dane [ global.tab [ 1 , 7 ] , global.tab2 [ 10 , 7 ] ] = 2008;
global.dane [ global.tab [ 6 , 3 ] , global.tab2 [ 24 , 3 ] ] = spr_kulka;
// i tak dalej...
Później, aby odwołać się do jakichś danych, trzeba wpisać np. GML
show_message ( string ( global.dane [ global.tab [ 1 , 7 ] , global.tab2 [ 10 , 7 ] ] ); , ale jest to trochę nieczytelne, dlatego lepiej zrobić sobie do tego oddzielną funkcję np. GML
pobierz_dane( argument0 , argument1 , argument2 , argument3 );. I to właściwie tyle. Należy tylko pamiętać, że w GM limit dla każdego indeksu to 32000, a dla całkowitego rozmiaru tablicy 1000000.