Skocz do zawartości

Zablokowane Obracanie obiektu (spowolnienie)


FanXX

Rekomendowane odpowiedzi

Witajcie, mam taką małą prośbę, chodzi mi o to że jak zrobić gdy kursorem ruszam na boki to obiekt np Gracz obraca się w kierunku myszki ale z efektem opóźnienia coś jak realne obracanie lufy w niektórych grach (obraca się ale wolno) Dzięki za każdą pomoc

Odnośnik do komentarza
Udostępnij na innych stronach

GML
direction= (((((direction-point_direction(x,y,mouse_x,mouse_y)) mod 360) + 540) mod 360) - 180)/4

 

 

Jest jeden problem z tym iż ten kod powoduje że obiekt (gracz) leci następująco:

kursor myszki w górnej części to samolot jak by schodził do lądowania a gdy dolna to jak by startował

 

Ja szukam w twoim kodzie jak to ustawić że stoi na srodku roomu np samochód obrócony w lewo i gdy myszkę wezme nad nim to on obraca się w stronę myszki jak ten kod:

 

GML
direction=point_direction(x,y,mouse.x,mouse.y);

image_angle=direction

 

tylko że powoli, może na zmiennych to zrobie jakoś ale wątpie że bedzie płynnie

 

A ten przykład Uzjel nie jest do końca tym co bym chciał - dzięki wszystkim za wielkie chęci :)

Jak dalej nie znajde rozwiązania to podesle przyklad do analizy może się dowiecie o co chodzi sorki że tak dużo tego ale to jest coś czego nie wiem jak zrobić

Odnośnik do komentarza
Udostępnij na innych stronach

Jest jeden problem z tym iż ten kod powoduje że obiekt (gracz) leci następująco:

kursor myszki w górnej części to samolot jak by schodził do lądowania a gdy dolna to jak by startował

 

Ja szukam w twoim kodzie jak to ustawić że stoi na srodku roomu np samochód obrócony w lewo i gdy myszkę wezme nad nim to on obraca się w stronę myszki jak ten kod:

 

GML
direction=point_direction(x,y,mouse.x,mouse.y);

image_angle=direction

 

tylko że powoli, może na zmiennych to zrobie jakoś ale wątpie że bedzie płynnie

 

A ten przykład Uzjel nie jest do końca tym co bym chciał - dzięki wszystkim za wielkie chęci :)

Jak dalej nie znajde rozwiązania to podesle przyklad do analizy może się dowiecie o co chodzi sorki że tak dużo tego ale to jest coś czego nie wiem jak zrobić

Skrypt skopiowałem z http://www.gmlscripts.com/ bo nie chciało mi się odpalać GM'a. Zaraz podeślę ci to co sam używam.

 

 

Edit: TURN:

GML
//Funkcja TURN zwraca roznice miedzy katami w korzystniejszym kierunku

//Dodatni wynik oznaczy kierunek zgodny z ruchem wskazowek zegara

//Ujemny wynik oznaczy kierunek przeciwny do ruchu wskazowek zegara

dif=0;

ang1=argument0;

ang2=argument1;

 

while(ang1>=360)ang1-=360; //Dziki tym czterem instrukcj unikniemy problematycznych wartosci.

while(ang1<0)ang1+=360; //ang1 i ang2 beda zawsze z przedzialu 0-359

while(ang2>=360)ang2-=360;

while(ang2<0)ang2+=360;

 

if(ang2>ang1+180) //Tutaj wyliczamy kat

dif=-((360-ang2)+ang1);

else

{

if(ang1>ang2+180)

dif=((360-ang1)+ang2);

else

dif=ang2-ang1;

}

return(dif);

 

Step:

GML
direction+=TURN(direction,point_direction(x,y,mouse_x,mouse_y))/4
Odnośnik do komentarza
Udostępnij na innych stronach

Skrypt skopiowałem z http://www.gmlscripts.com/ bo nie chciało mi się odpalać GM'a. Zaraz podeślę ci to co sam używam.

 

 

Edit: TURN:

GML
//Funkcja TURN zwraca roznice miedzy katami w korzystniejszym kierunku

//Dodatni wynik oznaczy kierunek zgodny z ruchem wskazowek zegara

//Ujemny wynik oznaczy kierunek przeciwny do ruchu wskazowek zegara

dif=0;

ang1=argument0;

ang2=argument1;

 

while(ang1>=360)ang1-=360; //Dziki tym czterem instrukcj unikniemy problematycznych wartosci.

while(ang1<0)ang1+=360; //ang1 i ang2 beda zawsze z przedzialu 0-359

while(ang2>=360)ang2-=360;

while(ang2<0)ang2+=360;

 

if(ang2>ang1+180) //Tutaj wyliczamy kat

dif=-((360-ang2)+ang1);

else

{

if(ang1>ang2+180)

dif=((360-ang1)+ang2);

else

dif=ang2-ang1;

}

return(dif);

 

Step:

GML
direction+=TURN(direction,point_direction(x,y,mouse_x,mouse_y))/4

 

 

Wielkie dzięki to jest to! Nie działało mi poprawnie gdyż miałem direction +90, wystarczył w grafice ustawić -90 czyli pionowo thx wielki

*** Temat Closed ***

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