Skocz do zawartości

Ustawienie nóg


Pablo-GM

Rekomendowane odpowiedzi

Witam , mam wydaje mi się prościutki problem z którym sam sobie nie mogę poradzić : ) Otóż obiekt o1Potwor w create tworzy sobie obiekt o1Nogi , wszystko gra do momentu gdy na mapie wrzucę więcej niż jednego potwora (błąd tkwi w ustawieniu x i y jego nóg).Problem polega na tym , że nogi tworzą się tylko pod jednym spośród wielu potworów . O to kod o1Nogi :

GML
x=o1Potwor.x

y=o1Potwor.y

image_angle = o1Potwor.image_angle;

 

if o1Potwor.ide=1

{

image_speed=0.3;

}

else

{

image_speed=0

}

if o1Potwor.hp<=0

{

instance_destroy();

}

Odnośnik do komentarza
Udostępnij na innych stronach

W GMie wyróżniamy dwa pojęcia:

  1. Obiekt - czyli wzorzec, jak mają wyglądać instancje
  2. Instancja - czyli konkretny przedstawiciel gatunku

Można przyjąć sobie, że obiekt to np. pies, a instancje psa to jakiś Azor, Burek, Reksio itd. To, co tworzysz w roomie to właśnie instancje danego obiektu. Każda instancja posiada swój identyfikator.

 

Cały czas odwołujesz się do obiektu, np:

GML
x=o1Potwor.x

y=o1Potwor.y

Podczas gdy chodzi ci o konkretną instancję, posiadacza nóg. Ta sztuczka działa, ale tylko wtedy, gdy masz jedną instancję obiektu w roomie. Inaczej będzie się wciąż odwoływać do tego jednego przedstawiciela - a nie o to nam chodzi.

 

Rozwiązanie? Gdy tworzysz w o1Potwor nogi, to pisz:

GML
mojeNogi = instance_create( x, y, o1Nogi );

mojeNogi.mojWlasciciel = id;

Wówczas zmienna mojeNogi przechowuje unikalny identyfikator nóg danego potwora, a mojWlasciciel na odwrót: unikalny identyfikator właściciela nóg.

 

Teraz wszędzie zamiast o1Potwor w kodzie nóg pisz mojWlasciciel i wszystko powinno działać. Gotowiec:

GML
x=mojWlasciciel.x

y=mojWlasciciel.y

image_angle = mojWlasciciel.image_angle;

 

if mojWlasciciel.ide=1

{

image_speed=0.3;

}

else

{

image_speed=0

}

if mojWlasciciel.hp<=0

{

instance_destroy();

}

No i Create potwora, czy gdzie tam masz tworzenie nóg:

GML
mojeNogi = instance_create( x, y, o1Nogi );

mojeNogi.mojWlasciciel = 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ę...