Skocz do zawartości

motion_add dla innej instancji


Rekomendowane odpowiedzi

Chyba banalny problem:

(ins=instancja )

(sn=(var) id insancji A)

 

Otóż jest ins A która ustala(po naciśnięciu "e") pewną zmienną(vel) w ins B.

Jak zrobić żeby dla vel=1 dodać "motion_add" dla ins A?

 

próbowałem "if vel=1 (sn).speed=+3" i działało, ale motion add to już nie jest zmienna i no... nie umiem ;p..

 

(może to istotne,

A tworzy B (jako eng) /// ok!

B przechowuje A.id (jako sn) /// ok!

A zmienia B.vel /// ok

B dodaje motion_add dla A /// dupa... <---- I w tym miejscu proszę o pomoc:/.

Odnośnik do komentarza
Udostępnij na innych stronach

speed jest zwykłą zmienną obiektu więc bez problemu można ją zmieniać tak jak to robiłeś.

motion_add() to już funkcja, musisz wykonać ją z wewnątrz obiektu na który ma działać. Sposobem na to jest with().

GML
with(A)

{

motion_add()

}

Odnośnik do komentarza
Udostępnij na innych stronach

Dzięki, działa :)

---------------

A oto medal za "uruchomienie silnika" oraz błyskawiczną odpowiedź!

Gnysek:

86032065831961454281.jpg

Za wyjaśnienie czym się różni zmienna od funkcji

Threef:

86032065831961454281.jpg

Za uwzględnienie w kodzie nazwy zmiennej

Boad:

86032065831961454281.jpg

----------------------------------------------

A kod skończył w takiej postaci:

GML
if vel=1

with (sn)motion_add((sn).image_angle,(sn).engpow/(sn).mass)

Odnośnik do komentarza
Udostępnij na innych stronach

with() powoduje że kod wykonuje się jakby z wewnątrz obiektu/instance który jest argumentem. Z tego powodu zmienia się zasięg zmiennych i możesz po prostu zrobić:

GML
if vel=1

with (sn)motion_add(image_angle,engpow/mass)

 

Co innego gdybyś chciał odnieść się do zmiennych z oryginalnego obiektu. Wtedy trzeba użyć other, ale o tym poczytaj już w dokumentacji gdzie będziesz miał dobre przykłady.

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