[MMF2] Kolizje ze ścianą |
Autor |
Wiadomość |
kamiledi15
Kapitan
 
Główny edytor: 
Drugi edytor: 
Pomógł: 8 razy Posty: 837
8479 Prestiż
|
Wysłany: 01-11-2017, 22:34 [MMF2] Kolizje ze ścianą
|
|
|
Męczę się z dość głupim problemem. Moja postać porusza się za pomocą Platform Movement Object. Gdy postać wpływa w ścianę, to się zatrzymuje, bo obiekt wykrywa kolizję - logiczne:
Ale, można postać obrócić:
I wtedy siedzi w ścianie i nie może z niej wypłynąć. Mogę dać, że ma wtedy wypłynąć w prawo - ale co, gdy wpłynę z lewej strony? Wtedy też wypłynie w prawo, wbijając się w ścianę jeszcze bardziej. Macie pomysł, jak to rozwiązać? |
_________________ Pies Syrena - GRA UKOŃCZONA.
 |
|
|
|
 |
jarlfenrir
Generał brygady
 
Główny edytor: 
Drugi edytor: 
Pomógł: 82 razy Posty: 1731
37283 Prestiż
|
Wysłany: 01-11-2017, 22:49
|
|
|
Gorący punkt ustawić dokładnie w środku postaci? |
|
|
|
 |
kamiledi15
Kapitan
 
Główny edytor: 
Drugi edytor: 
Pomógł: 8 razy Posty: 837
8479 Prestiż
|
Wysłany: 01-11-2017, 22:54
|
|
|
Postać jest podzielona na części, ciało składa się z kilkunastu osobnych obiektów i każdy ma swoje punkty. Zresztą, co to zmieni, że punkt będzie na środku?
Próbowałem zrobić, że np gdy postać koliduje ze ścianą i gdy jest po prawej od przeszkody, to ma przesunąć się w prawo i odwrotnie. I działa, ale z kolei gdy wpływa w przeszkodę z dołu lub z góry, to wtedy też zasuwa w lewo lub w prawo, więc znowu źle. Nie wiem, jak to rozwiązać.
[ Dodano: 01-11-2017, 23:26 ]
Dobra, rozbudowałem trochę schemat wykrywania kolizji i jakoś to działa. Niestety muszę to chyba zrobić dla każdej przeszkody osobno (grupowanie wszystkich w jedną grupę nie zdało egzaminu), ale jakoś sobie poradzę. Najwyżej gra zyska z 50 nowych zdarzeń w każdym etapie. |
_________________ Pies Syrena - GRA UKOŃCZONA.
 |
|
|
|
 |
Oskar1101
Sierżant
 
Główny edytor: 
Pojedynki: być może
Skype: 
Pomógł: 6 razy Posty: 133
928 Prestiż
|
Wysłany: 02-11-2017, 07:01
|
|
|
Bo model kolizji robi się jako osobny obiekt którego nie obracasz. Zrób model kolizji postaci jako jakiś kwadrat albo lepiej okrąg, ustaw go na środku, ukryj go i sprawdzaj jego kolizje z otoczeniem. Zdecydowana większość gierek 2D ma model kolizji oddzielony od warstwy wizualnej(najczęściej na korzyść gracza bo ten model jest zazwyczaj mniejszy od postaci co daje graczowi dodatkowy margines błędu), a jak potrzebujesz większej precyzji to doczep jeszcze w grupie kilka mniejszych okręgów/boxów do rąk/wystających części i niech podążają za kończynami ale niech się nie obracają. |
|
|
|
 |
msg
Pupogłowy ~~~~~~~~~~~

Główny edytor: 
Drugi edytor: 
Pomógł: 76 razy Posty: 1411
40075 Prestiż
|
Wysłany: 02-11-2017, 08:07
|
|
|
kamiledi15 napisał/a: | Postać jest podzielona na części, ciało składa się z kilkunastu osobnych obiektów i każdy ma swoje punkty. |
W takim przypadku oparcie kolizji o prostokątny detektor miało być zrobione już dawno.
Oskar1101 napisał/a: | Zdecydowana większość gierek 2D ma model kolizji oddzielony od warstwy wizualnej(najczęściej na korzyść gracza bo ten model jest zazwyczaj mniejszy od postaci co daje graczowi dodatkowy margines błędu) |
Zdecydowana większość edytorów (w przeciwieństwie do CFa) obsługuje maski kolizji, więc problem może tam nie występować. Tak jest w C2, GMS i Unity np. |
_________________
|
|
|
|
 |
kamiledi15
Kapitan
 
Główny edytor: 
Drugi edytor: 
Pomógł: 8 razy Posty: 837
8479 Prestiż
|
Wysłany: 02-11-2017, 08:33
|
|
|
Jest to jakieś rozwiązanie, tylko z kolei boję się, że przez to postać będzie się zatrzymywać zbyt daleko od przeszkód. Ale zobaczymy, spróbuję, dzięki. |
_________________ Pies Syrena - GRA UKOŃCZONA.
 |
|
|
|
 |
msg
Pupogłowy ~~~~~~~~~~~

Główny edytor: 
Drugi edytor: 
Pomógł: 76 razy Posty: 1411
40075 Prestiż
|
Wysłany: 02-11-2017, 13:09
|
|
|
kamiledi15 napisał/a: | boję się, że przez to postać będzie się zatrzymywać zbyt daleko od przeszkód. |
Prędzej będzie na niego nachodzić kończynami. IMO detektor powinien być mniej więcej taki:
Rozważ też mechanizm odsuwania się od potencjalnej przeszkody przy obracaniu albo ogólnie pół-automatyczne unikanie kolizji przez zmianę położenia bohatera. |
_________________
|
|
|
|
 |
kamiledi15
Kapitan
 
Główny edytor: 
Drugi edytor: 
Pomógł: 8 razy Posty: 837
8479 Prestiż
|
Wysłany: 02-11-2017, 13:17
|
|
|
Tylko, że postać może się pochylać. Jeśli się schyli tułowiem, to ten prostokąt pochyli się razem z nią i będzie wystawać z tyłu za ogonem i to całkiem sporo. Czyli tam, gdzie teraz jest lewa ręka, tam by był prostokąt, przy niezmienionej pozycji ogona. Ale generalnie już sobie chyba poradziłem, rozbudowałem trochę kod i jakoś to działa.
[ Dodano: 04-11-2017, 18:14 ]
Znalazłem rozwiązanie. Gdy postać uderzy w przeszkodę, to odwracają jej się prędkości X i Y i po prostu się odbija, tym mocniej, im szybciej się poruszała. I tak jednym ruchem naprawiłem swój problem. I nawet lepiej to wygląda, gdy postać się odbije, niż gdy nagle wyhamuje. |
_________________ Pies Syrena - GRA UKOŃCZONA.
 |
|
|
|
 |
|