NukeBoards - Kreatywność przede wszystkim
FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy  DownloadDownload
RejestracjaRejestracja  ZalogujZaloguj

Odpowiedz do tematu
Poprzedni temat :: Następny temat
[MMF2] Kolizje ze ścianą
Autor Wiadomość
kamiledi15 
Kapitan


Główny edytor: TGF
Drugi edytor: MMF2
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: Fusion 2.5
Drugi edytor: TGF2
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: TGF
Drugi edytor: MMF2
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: MMF2
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: KNP
Drugi edytor: KNP
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.
_________________
:razzugly:
 
     
kamiledi15 
Kapitan


Główny edytor: TGF
Drugi edytor: MMF2
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: KNP
Drugi edytor: KNP
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.
_________________
:razzugly:
 
     
kamiledi15 
Kapitan


Główny edytor: TGF
Drugi edytor: MMF2
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.
 
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

PSK Cytaty Klikibaza - kopia wszystkich klików Klikipedia - encyklopedia o tworzeniu gier Discord KlikCzat Zaproszenie
Daj piniondza Wielkie Muzeum Klikowe

Powered by phpBB modified by Przemo © 2003 phpBB Group