Skocz do zawartości

Zycie RTS


Rekomendowane odpowiedzi

Witam wszystkich zainteresowanych tym tematem. Otóż bardzo potrzebuję pomocy przy robieniu swojego zacnego RTS'a...

Otóż:

mam obiekt o_u_br

i mam obiekt o_ou_br

Pierwszy to jednostka.

Drugi to kontroller jednostki.

I w kontrolerze piszę np. hp=80, maxhp=80. Kod nie jest odnoszony do "o_u_br", po prostu jest, gdyż wymaga on zmiennych zawartych tylko w tym kontrolerze.

No i gdy tworzy mi się taka druga jednostka, tworzy się drugi kontroller. Załóżmy że mam dwie jednostki i dwa kontrollery. Oba mają ustawione hp=80. I jak przykładowo nacisnę Ctrl to mam kod:

GML
hp-=5

I ten kod jest skierowany do o_ou_br, czyli tego kontroleru.

No i teraz obu jednostkom się odejmuje hp... Wiem dlaczego, bo kod obowiązuje wszystkie obiekty o nazwie o_ou_br. Jednak jak zrobić żeby jedna z tych jednostek traciła życie a druga nie? Oba kontrolery i obie jednostki muszą mieć takie same kody. Jak to zrobić?

Proszę o pomoc, przerywa to moją produkcję :crying:

Odnośnik do komentarza
Udostępnij na innych stronach

id The unique identifier for the instance (>= 100000).

Myślę, że łatwiej byłoby wrzucić hp i hpmax do objectu jednostka, zamiast bawić się na dwóch obj.

 

Teraz to już nic nie rozumiem :P

Jeden obiekt? Hmm.... załóżmy że ma hp=80 i jak to drawować? Trzeba zrobić drugi obiekt przeznaczony do drawów. I on ma w draw:

GML
draw_text(0,0,hp)

i jest skierowany do obiektu jednostki. Ale teraz nie wiem co robić jak jest kilka obiektów. Tworzy się wtedy kilka obiektów drawów i one już mi się mylą... straszna plątanina to. Powiedz coś więcej o tym całym id.

Odnośnik do komentarza
Udostępnij na innych stronach

To zrób obliczenia w o_u_br a w o_ou_br wstaw tylko kod drawowania:

GML
draw_text(0,0,my_obj.hp)

 

Tylko musisz cześniej mu zdefiniować my_obj np. w o_u_br w create dajesz:

GML
my_obj = instance_create(0,0,o_ou_br)

my_obj.my_obj = id

 

E: Pomyliłem się, już jest dobrze

Odnośnik do komentarza
Udostępnij na innych stronach

Jeden obiekt? Hmm.... załóżmy że ma hp=80 i jak to drawować? Trzeba zrobić drugi obiekt przeznaczony do drawów. I on ma w draw:

Po cholere? :o

zrób to w obiekcie jednostki, w create daj hp=iles a w draw

GML
draw_text(0,0,hp)

draw_sprite(sprite_index,-1,x,y)

Pytam, po co drugi obiekt?

Odnośnik do komentarza
Udostępnij na innych stronach

Po cholere? :o

zrób to w obiekcie jednostki, w create daj hp=iles a w draw

GMLdraw_text(0,0,hp)

draw_sprite(sprite_index,-1,x,y)

Pytam, po co drugi obiekt?

 

A czy jak dam to twoje "draw_sprite(sprite_index,-1,x,y)" to będzie się kumulowało z animacją oraz

GML
if(mouse_x<x)

sprite_index=s_u_br_lewo;//albo sprite_index=lewo

else

sprite_index=s_u_br_prawo;//albo sprite_index=prawo</span>

 

??

Odnośnik do komentarza
Udostępnij na innych stronach

O coś takiego Ci chodziło?

Pliczek:TU

 

Jak jest przykład, to od razu rozumiem! :P

Wielkie dzięki, tego mi było trzeba. Innym też dziękuje :thumbsup:

 

e: ale tam w draw jest image_index=i daje tam sprite.

A u mnie w stepie jest zmiana sprita i jeszcze animacje do tego. Mówiłem że to się ma kumulować. I co teraz?

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