Skocz do zawartości

Kolizja w kole


Rekomendowane odpowiedzi

Witam,

 

chciałbym poruszyć pewną kwestię, która w mojej opinie zawsze w GM stwarza największy kłopot - kolizję obiektów i płynność ruchu z tym związana.

Do rzeczy: moja scena wygląda bardzo prosto - mamy obiekt gracza, który znajduje się w kole (rysowanym, nie jest to prawdziwy obiekt). Chciałbym by gracz mógł płynnie poruszać się po "krawędziach" koła, bez zatrzymywania się w nich. Ma ktoś jakiś pomysł jak to zrobić? Aktualnie zatrzymuję ruch przez funkcję Point_distance, jednak wiem, że nie jest to idealne rozwiązanie. Poniżej STEP obiektu gracza (i to zasadniczo wszystko co w tej grze aktualnie jest):

 

prawy = keyboard_check(ord("D"))
lewy = keyboard_check(ord("A"))
gora = keyboard_check(ord("W"))
dol = keyboard_check(ord("S"))

xaxis = (prawy - lewy);
yaxis = (dol - gora);
    
direc = point_direction(0, 0, xaxis, yaxis);
    
if xaxis = 0 && yaxis = 0 {
    len = 0;
} else {
    len = szybkosc;
}
    
x += lengthdir_x(len, direc)
y += lengthdir_y(len, direc);
    

if point_distance(x, y, room_width/2, room_height/2) >= 200 {
   x = xprevious;
   y = yprevious;
}

 

Będę bardzo wdzięczny za jakąś poradę jak łatwiej ten problem rozwiązać.

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