Skocz do zawartości

tworzenie obiektu


Rekomendowane odpowiedzi

Witam!

 

Mam problem, trudze się z nim już jakiś czas i nie moge sobie z nim poradzić. Mam zmienną globalną, która przechowuje nazwe objektu jako string.

Jak zapisać kod który będzie tworzył obiekt a nazwe będzie pobierał ze zmiennej?

 

GML
instance_create(x,y,global.zmienna);

 

Ten kod wyżej nie działa jak coś, dałem go po to byście wiedzieli o co mi chodzi :D

Odnośnik do komentarza
Udostępnij na innych stronach

mam obiekty "info_obiek", około 50 obiektów "modul" i obiekt, który będzie tworzył dany moduł "create"

 

w menu mam odpowiedniki do każdego mogułu, po kliknięcu na jeden z nich w obiekcie "info_obiekt" pojawiają sie informacje o tym module który klikneliśmy (sprite, do czego służy itd) oraz pokazuje się (tworzy sie) obiekt "create" i by stworzyć wybrany moduł trzeba będzie kliknąć na krzycisk create.

 

Ten kod jest mi potrzebny po to by nie pisać 50 razy (50 mam modułą a jeszcze jest pare innych obiektów) jednego i tego samego tylko z inną nazwą obiektu

 

GML
if (global.name=obj_dodawanie)

{

instance_create(x,y,obj_dodawanie);

}else

if (global.name=obj_odejmowanie)

{

instance_create(x,y,obj_odejmowanie);

}else...

 

tylko wystarczy

GML
instance_create(x,y,global.name)

 

 

Z object_index też nie działa, nie ma żadnej reakcji(nic sie nie dzieje).

Odnośnik do komentarza
Udostępnij na innych stronach

Lordis, każdy obiekt ma swój własny identyfikator/numer przy pomocy którego możemy się do niego odwołać.

Jego nazwa to w pewnym sensie tylko jakaś tam stała przechowująca ten identyfikator.

Gdy tworzysz obiekt w standardowy sposób:

GML
instance_create(200,34, moj_obiekt);

To do funkcji nie wysyłasz wcale stringu "moj_obiekt". Wysyłasz stałą przechowującą jakiś numer identyfikacyjny.

Gdy tworzysz nowy obiekt ma on automatycznie nadawaną nazwę object00, object01, object02 i tak dalej. Ten numer na końcu to właśnie jego numer.

 

Tak wiec do zmiennej globalnej zamiast przypisywać string będący nazwą obiektu:

GML
global.a="moj_obiekt";

Po prostu przypisz jego numer:

GML
global.a=moj_obiekt;
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ę...