Skocz do zawartości

Obiekty kolizji


MiChAl200

Rekomendowane odpowiedzi

Gra jest wygenerowana przez generator i zbudowana z bloków. Tylko te bloki nie są obiektami tylko namalowanymi sprite'ami w surface.

Mapa jest także pokryta siatką. (ds_grid_create) i w każdej komórce jest zapisane id obiektu (brak obiektu to -1).

Pozostaje jednak jedna rzecz: Kolizje.

Dlatego chciałem zrobić, żeby powstawały obiekty kolizji naokoło gracza, jeśli w danym miejscu jest jakiś blok (jeśli w danej komórce jest inna wartość niż -1).

Te obiekty mają "na żywo" tworzyć się i usuwać podczas chodzenia postacią.

http://img.pl/9YAdfRA - tu mniej więcej jest narysowane.

 

A tu jest filmik z jedną grą i w 2:20 sekundzie jest pokazane to co ja chciałem zrobić.

http://www.youtube.com/watch?v=8OKrwOK6Gjg

 

Tworzyłem objekt "obj_kolizja" i zrobiłem z jednym pod ludzikiem, ale coś się psuło (jak z większej wysokości spadałem to on się w ten obiekt wbijał..), potem z pętlą for gdzie sprawdzało każdą komórkę osobno, ale też coś nie wychodziło i obniżało FPS.

 

Wiem że trochę się rozpisałem ale męczę się z tym kilka dni i nie wiem jak to zrobić.

Odnośnik do komentarza
Udostępnij na innych stronach

Po co sprawdzać zajęte komórki na około gracza? Jeśli można pobrać komórki najbardziej zdatne do kolizji: Po przez tzw. bounding-box

bboxh.png

Co do zarządzania takową kolizją - możliwości jest wiele, jednak najprostszą ( wg. mnie ), i dość skuteczną metodą byłoby sprawdzanie najdalej położonego wolnego miejsca po przez wyszukiwanie binarne takowego wypadku, następnie jedynie wystarczy przemieścić tam gracza i odpowiednio zarządzić prędkościami.

Odnośnik do komentarza
Udostępnij na innych stronach

@UP

Poradziłem sobie. Zrobiłem inaczej (wymyśliłem sposób zanim odpisałeś) i na razie nie znalazłem, żadnych bugów, ale jakby co to spróbuję twojego sposobu, więc dzięki :)

 

EDIT:

Nie, jednak są błędy.. Postać czasem wbija się w klocek.

Użyję twojej propozycji, tylko.. nie wiem dokładnie jak to zrobić. Mógłbyś mniej więcej powiedzieć jak to zrobić?

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