Skocz do zawartości

GM'owe direction i speed


Rekomendowane odpowiedzi

Opublikowano

Potrzebuje poruszania się po danym kącie z daną szybkością. Kiedyś miałem taki fajny kod, ok. 4 linie ale działał perfekcyjnie. Z pamięci napisałem takie coś, ale nie działa tak jakbym chciał. Kod jest do C#, ale mi chodzi o sam algorytm.

 angle = direction * (180/Math.PI);
dx = Math.Cos(angle) * speed;
dy = Math.Sin(angle) * speed;
x += (int)dx;
y += (int)dy;

 

Pomóżcie!

Opublikowano

Chodzi mi o to, że ten kod nie działa jak powinien, zwyczajnie "świruje".

Chciałem aby ktoś znający się trochę na matmie napisał algorytm działający jak GM'owe speed i direction bo mój kod (z pierwszego postu) zwyczajnie nie działa.

  • Administratorzy
Opublikowano

A jest uwzględniona prędkość gry (FPS) ? Bo jeżeli ten kod wykonuje się co cykl zegara, to dość szybko przekracza zakres INTa.

Opublikowano

A degtorad gdzie? sry, jest.

(angle*pi) / 180

<_<

 

float angle =  (direction * Math.PI)/180;
x += (int)(Math.Cos(angle) * speed);
y -= (int)(Math.Sin(angle) * speed);

 

Już powinno styknąć.

Opublikowano

Musi być dobrze, ja mam na tej zasadzie w silniku i styka, oO.

float angle =  (direction * Math.PI)/180;
x += (int)(Math.Cos(angle) * speed);
y += (int)(Math.Sin(angle) * speed);

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