Skocz do zawartości

globalne zmienne


Owex

Rekomendowane odpowiedzi

Witam. Otóż mam taki problem: chciałbym aby jeden obiekt przechowywał informacje o takich zmiennych jak hp, sila i mana. Chodzi o to, że np. hp=(sila+mana)/2, a np. później kiedy będę chciał zmodyfikować system obliczania hp to zamiast zmieniać tę linijkę w iluś tam obiektach wystarczy że zmienię w tym jednym obiekcie. Także siła uderzenia npc będzie w taki sposób przechowywana. Ale jak zrobić żeby każdy obiekt miał swoje własne dane sila i mana a hp i siła uderzenia będą wyliczane automatycznie. Próbowałem różnych kodów ale żaden nie działał poprawnie. Mam nadzieję że wyraziłem się zrozumiale.

Odnośnik do komentarza
Udostępnij na innych stronach

Masz powiedzmy 3 zmienne, które są od siebie zależne. Chcesz edytować jedną i by pozostałe automatycznie się obliczały względem jej wartości, tak? Tak to zrozumiałem.

 

Więc zamiast w podstawowy sposób przypisywać wartości do zmiennej:

GML
zmienna1=10;

Zrób sobie skrypt, który zrobi to i po prostu go wywołuj:

GML
ustaw_zmienna1(10);

 

Skrypt będzie wyglądał tak:

GML
zmienna1=argument0;

zmienna2=zmienna1+100; //Tutaj ustawiasz zmienną drugą zależną od 1 jak tam Ci się podoba.

zmienna3=(zmienna1+zmienna2)/2 //Tutaj sobie trzecią zmienną ustalasz jak Ci się podoba.</span>

Odnośnik do komentarza
Udostępnij na innych stronach

Chodzi mi o to, że w obiekcie który ma przechowywać informacje o obliczaniu wartości hp i siły uderzenia ma być jedynie taki skrypt (nie koniecznie identyczny ale działający podobnie)

GML
hp=(sila+mana)/2

Próbowałem go tak zapisać ale program upominał się o wartości dla 'sila' i 'mana'. I teraz nie wiem jak go zapisać żeby wyglądało to tak, że

w obj. hero zapisuję tylko tyle:

GML
sila=10; mana=10; //hp jest obliczane automatycznie ze wzoru który napisałem w obiekcie który te informacje o obliczaniu przechowuje</span>

i w hero czy obj. npc nie zapisuję nic oprócz sila i mana a hp samo się liczy.

To samo z siłą uderzenia. Byłby jedynie zapisany kod w obiekcie który te informacje przechowuje " uderzenie=sila/2 " a w kolizji z hero skrypt "hero.hp-=uderzenie".

Może teraz jest jaśniej wyjaśnione

Odnośnik do komentarza
Udostępnij na innych stronach

No toż kurde, robisz tak jak powiedziałem. Robisz sobie skrypt, który nazywa się Ustaw():

GML
sila=argument0;

mana=argument1;

hp=(sila+mana)/2;

 

I w obiekcie zamiast ustawiać zmienne, wywołujesz ten skrypt:

GML
Ustaw(5,10); //Ustawi sile na 5, mane na 10 i wyliczy hp.</span>
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ę...