NukeBoards

Pomoc - [MMF/TGF] Problem z grupą obiektów

Pentagraf - 25-10-2005, 18:31
: Temat postu: [MMF/TGF] Problem z grupą obiektów
Sprawa wygląda tak.
Wszystkich wrogów dałem jako grupa Enemies. Jeżeli bohater dostanie ileś tam razy w zęby to odlatuje kawałek dalej w kierunku przeciwnym do wroga. W zdarzeniu wygląda to mniej więcej tak:

Bohater flaga 1 on
+Bohater pozycja X > Grupa Enemies
=>odlatuje w prawo

Bohater flaga 1 on
+Bohater pozycja X < lub = Grupa Enemies
=>odlatuje w lewo

Wszystko działa, ale dopóki wróg się nie rozproszy, tzn. pozycja X części z nich będzie większa od X bohatera, a częsci mniejsza. I teraz jak odlatuje, to czasem leci w przeciwnym kierunku, niż ten który miał być (nawet nie wiem od czego to zależy, bo raz jest ok raz nie).

W jaki sposób mam wskazać, przy tych zdarzeniach, że ma być brany pod uwagę tylko ten wróg z grupy, który akurat zadaje cios?
Minty - 25-10-2005, 18:39
:
TGF/MMF zwykle dobiera jeden obiekt z grupy- zdaje się, że ten ostatnio utworzony. Spróbuj dodać do tego warunek sprawdzania, czy wróg koliduje z graczem, a jeśli nie możesz, to może tak, że jeśli tylko jeden gość w danym momencie może oddawać cios, to ten dodatkowy warunek ma sprawdzać jego np. animację albo coś.
Tasmpol - 25-10-2005, 18:52
:
Ew. powiązać pocisk z wrogiem, który go wystrzeliwuje, ale to strasznie dużo mieszania i ogromny margines błędu, dla mnie napisanie takiego czegoś to jak próba ułożenia graniastosłupa z zapałek.
Coś mi się zdaje, że musisz to zrobić jakoś inaczej. Możesz np. jeżeli pocisk ma ruch piłki to podczas zderzenia z graczem, niech kawałek, który odpada pobierze kierunek od tego pocisku i zacznie nim podążać. Tak, ja tak robiłem, ale nie wiem, czy w tym wypadku zadziała. Jak coś, to zdarzenie pobrania kierunku ruchu obiektu jest bodajże w podgrupie z wartościami animacji obiektu.
Natie - 25-10-2005, 19:04
:
Gra instruktażowa z TGF, może tam z niej coś wyciągniesz, jest to bijatyka :) Usunąłem dźwięki i tła żeby zmniejzyć jej rozmiar.
Pentagraf - 25-10-2005, 19:48
:
Bohater flaga 1 on
+Bohater pozycja X > Grupa Enemies
=>pozycja X bohater +2

Bohater flaga 1 on
+Bohater pozycja X < lub = Grupa Enemies
=>pozycja X bohater -2

Przesuwa pozycję X bohatera o +2/-2 gdy flaga 1 jest włączona. Także odpada testowanie kolizji z wrogiem (bo kolizja jest tylko jak dostaje cios, potem odlatując oddala się od wroga), odpada testowanie w tych zdarzeniach czy animacja cios u wroga jest odtwarzana (nie będzie już zmieniał pozycji, jak animacja wroga się skończy, ponadto i tak to nic nie daje, sprawdziłem :) ).

Nic nie daje także ustawienie flagi dla tego, który zadaje cios. Wygląda na to, że będę musiał zlikwidować grupę i traktować każdego wroga indywidualnie :/
Natie - 25-10-2005, 22:31
:
No to jeśli:
-nie używasz zmiennej C
-animacja ciosu ma najwiecej klatek
Zrób tak że powiedzmy jeśli animacja ciosu ma 11 klatek, krótsza od niej animacja ma 7 klatek to zrób tak:

Kod:
Always=>Set altebrate value C of "Bohater" to Current Level of "Bohater"

I do twoich warunków dodaj sprawdzanie czy klatka jest równa 8 ( jest to ilość klatek krótszej animacji + 1 ):

Kod:
Bohater flaga 1 on
+Bohater pozycja X > Grupa Enemies
+ Pick all enemies with altebrate value C = 8
=>pozycja X bohater +2

Bohater flaga 1 on
+Bohater pozycja X < lub = Grupa Enemies
+ Pick all enemies with altebrate value C = 8
=>pozycja X bohater -2