Skocz do zawartości

Identyfikator "Obiektu"


Threef

Rekomendowane odpowiedzi

Mam problem.

Stworzyłem edytor map który przechowuje nazwy obiektów w ds_grid. Później przy pomocy ds_grid_write() zapisuję wszystko do pliku. Zapisywanie i wczytywanie działa idealnie, problem pojawia się gdy chcę wczytać mapę już w grze.

GML
h=ds_grid_create(32,32)

ds_grid_clear(h,o_block_grass)

Problem już rozpracowałem. Chodzi o to że zamiast "o_block_grass" w gridzie pojawia się np.: "14", które (jak mi się wydaje) jest identyfikatorem obiektu. Taki identyfikator jest przyznawany obiektom wg kolejności ich utworzenia w GM-ie, tak więc "14" odpowiada 14-stemu obiektowi utworzonemu przeze mnie. Problem polega na tym że w grze 14-stym obiektem nie jest "o_block_grass".

Ja teraz potrzebuję uniwersalnego sposobu na kodowanie i dekodowanie tego, coś jak np.:

GML
h=ds_grid_create(32,32)

ds_grid_clear(h,string(o_block_grass))

Tak żeby zamiast "14" na prawdę pojawiało się tam "o_block_grass".

 

Pomóżcie bo inaczej Shil mnie zabije!

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

W grze:

 

GML
var obj;

switch (wartość_zdjęta_z_grida) {

case 14: obj = jakis_obiekt; break;

case ...: ... break;

}

instance_create(x,y,obj);

 

Tak to mniej więcej obchodzę w Almorze... mniej więcej, bo tam każdy element na mapie to ten sam obiekt, tylko z inną grafiką. Ponieważ grafiki i tak zapisuję w ds_mapie po nazwach (string), a typy obiektów otocznia tak samo, nie ma konfliktów pomiędzy edytorem a grą (bo wszystko i tak jest czytane z plików zew.)

Odnośnik do komentarza
Udostępnij na innych stronach

GML
var obj;

switch (wartość_zdjęta_z_grida) {

case 14: obj = jakis_obiekt; break;

case ...: ... break;

}

instance_create(x,y,obj);

To najgorsze rozwiązanie jakie mógłbym obrać, aktualnie mam prawie 60 obiektów, a czekam na nowe. Tak czy inaczej chyba będę musiał zrobić taką listę obiektów, chyba że można uzyskać odniesienie do obiektu podając jego nazwę jako string. Potrzeba mi właśnie czegoś odwrotnego do object_get_name()

Odnośnik do komentarza
Udostępnij na innych stronach

No i jednak zrobiłem switch. Najbardziej się obawiałem tego że nie znam identyfikatorów poszczególnych obiektów, ale poradziłem sobie wyrzucając show_message gdy nie mam w switch-u danego ID

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