Skocz do zawartości

Zablokowane Głupia policja


M@ILOSZ

Rekomendowane odpowiedzi

Robię taką grę: Jeżdzimy po mieście robimy wyścigi i czasem goni nas policja. Wszystko działa dobrze, tylko że policja jak wpadnie na ściane to odbija się i znowu wjeżdza w ściane. Czy nie dało by się zrobić tak bypolicja po dojechaniu np. 100px od ściany okrążała ją?

Zrobienie tego w stepie omijającym obiekty solid nie pomaga, dalej sie odbija.

Odnośnik do komentarza
Udostępnij na innych stronach

A niby który numer?

Podejżewam, że używasz direction i speed(albo motion_set/add) do poruszania się. Mógłbyś zmienić poruszanie się na takie robisz zmienną szybkosc. I w akcji gonienia(najlepiej aby działa się co step) dajesz:

szybkosc+=0.1;
mp_potential_step(bohater.x,bohater.y,szybkosc,0);
if szybkosc>30 then szybkosc=30;

Zaznacz solid murkom i będzie je omijał.

EDIT:

Tak na dobrą sprawę, to jeżeli odjedziesz w kręte uliczki to będzie problem z gonieniem spróbuj zamiast powyższego kodu:

szybkosc+=0.1;
direction=point_direction(x,y,bohater.x,bohater.y);
mp_potential_step(x+lengthdir_x(szybkosc,direction),y+lengthdir_y(szybkosc,direction),szybkosc,0);
if szybkosc>30 then szybkosc=30;

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...
Działa, a może ktoś wie jak zrobic zeby maksymalny skręt to był na przyklad 5?

Maksymalny skret policji.

Uściślij o co ci chodzi? Jeżeli ci chodzi o to żeby obrót mógł być pomiędzy 0, a 5 stopniem tylko to kod:

GML
if direction>5 then direction=5;

Chociaż najprawdopodobnie chodzi ci żeby obracała się policja 5 stopni na step. Jesli tak to skontaktuj się z Yodą, bo on to zrobił w Islandzie.

Odnośnik do komentarza
Udostępnij na innych stronach

GML
mp_potential_settings(maxrot,rotstep,ahead,onspot) //maxrot oznacza maksymalny obrot
Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...