Skocz do zawartości

Przekazywanie argumentów przez referencję


hamtaren

Rekomendowane odpowiedzi

Coś podobnego do C++, czego za cholerę nie potrafię w GMie zapisać. Mamy przykładową funkcję "pobierz", która pobiera argumenty, które są zmiennymi. Wywołuję funkcję pobierz(X1,Y1) i...

Kod funkcji

GML
argument0 = mouse_x

argument1 = mouse_y

Chciałbym, żeby wartości X1 i Y1 się zmieniły po wywołaniu funkcji. Gdyby był tylko jeden argument użyłbym return i po sprawie, ale jak przekazać argument przez referencję z powrotem do zmiennej? (Dawno nic nie robiłem w C++, więc mogę mylić pojęcia, ale chyba dobrze wyjaśniłem jaki efekt chcę uzyskać)

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

W zwykłym GM możesz użyć variable_local_set itp., ale na zmiennych globalnych to i tak nie działa, a mouse_x takową jest. Możesz ew. zrobić jakis sktrypt że przekazujesz stringiem nazwę zmiennej i potem w switchu wykonujesz operacje.

Odnośnik do komentarza
Udostępnij na innych stronach

Okazuje się, że mój główny błąd leżał w podawanych argumentach. Wpisując pobierz(X,Y), argument0 i argument1 przyjmowało wartości a nie nazwy zmiennych, więc to:

GML
argument0 = mouse_x

argument1 = mouse_y

nie miało sensu. Jednak, wywołując funkcję jako pobierz('X','Y') i używając variable_local_set, wszystko zadziałało tak jak chciałem.

GML
variable_local_set(argument0,mouse_x)

variable_local_set(argument1,mouse_y)

Dzięki gnysek :)

Temat można zamknąć

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