Skocz do zawartości

Zablokowane Moja pierwsza funkcja...


ZeroXbot

Rekomendowane odpowiedzi

Zrobiłem swoja pierwszą funkcję (to_pos). Ma ona za zadanie nakierować pojazd do punktu kliknięcie myszki, ale napotkałem pewien problem (z kodem). Spójrzcie:

GML
{

if(mouse_check_button_pressed(mb_left))

{

xx=mouse_x;

yy=mouse_y;

speed=1;

}

if(variable_local_exists('xx')) && (variable_local_exists('yy'))

{

if(distance_to_point(xx,yy)<=2)

{

speed=0;

}

if(point_direction(x,y,xx,yy)<direction<=point_direction(x,y,xx,yy)-180) then direction-=2;

if(point_direction(x,y,xx,yy)>direction>point_direction(x,y,xx,yy)-180) then direction+=2;

image_angle=direction;

}

}

To jest kod tej funkcji, no i czołg zamiast elegancko dojechać, robi kółka, ósemki, sinusoidy (czy cosinusoidy)(w zależności od tego, gdzie nacisnę). Początkowo używałem takiej wersji (zmieniony skrawek kodu)
GML
if(point_direction(x,y,xx,yy)<direction) then direction-=2;

if(point_direction(x,y,xx,yy)>direction) then direction+=2;

Było wtedy lepiej (chociaż czsami też "świrował"), ale czemu ten nowy "nie działa"?
Odnośnik do komentarza
Udostępnij na innych stronach

winny:

GML
if(point_direction(x,y,xx,yy)<direction<=point_direction(x,y,xx,yy)-180) then direction-=2;

if(point_direction(x,y,xx,yy)>direction>point_direction(x,y,xx,yy)-180) then direction+=2;

 

direction się dodaje a zaraz po tym odejmuje. Na pewno skacze od -2 do 2.

ustaw jakiś przedział.

 

np zrób tak:

GML
dir = point_direction( x , y , xx , yy )

if ( abs( direction - dir ) > 2 )

{

if ( direction > dir ) direction -= 2

else

direction += 2

}

else

direction = dir

Odnośnik do komentarza
Udostępnij na innych stronach

Dzięki! Jest o wiele lepiej, ale np. gdy klikne tak na jakieś powiedzmy 92 stopnie w lewo, to on zamiast krecić się w lewo (bo ma bliżej), to się kręci w prawo. :|

 

@EDIT: O i znowu jakoś klikłem i zaczął robić ósemki... oglądałem twój kod (żeby nie było, że wklejam bezmyślnie) i nie wiem czemu tak się dzieje...

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