FanXX Opublikowano 6 Kwietnia 2012 Udostępnij Opublikowano 6 Kwietnia 2012 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 Więcej opcji udostępniania...
Uzjel Opublikowano 6 Kwietnia 2012 Udostępnij Opublikowano 6 Kwietnia 2012 https://gmclan.org/index.php?plik=170 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 6 Kwietnia 2012 Udostępnij Opublikowano 6 Kwietnia 2012 GML direction= (((((direction-point_direction(x,y,mouse_x,mouse_y)) mod 360) + 540) mod 360) - 180)/4 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Finn Opublikowano 6 Kwietnia 2012 Udostępnij Opublikowano 6 Kwietnia 2012 Alarm'y, Timeline'y albo może friction zadziała. Edit:Spóźniony Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
FanXX Opublikowano 6 Kwietnia 2012 Autor Udostępnij Opublikowano 6 Kwietnia 2012 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 Więcej opcji udostępniania...
FanXX Opublikowano 6 Kwietnia 2012 Autor Udostępnij Opublikowano 6 Kwietnia 2012 Alarm'y, Timeline'y albo może friction zadziała. Edit:Spóźniony A friction to tarcie? Bo moze wtedy zadziała, przetestuje dzięki Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 6 Kwietnia 2012 Udostępnij Opublikowano 6 Kwietnia 2012 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 Więcej opcji udostępniania...
FanXX Opublikowano 6 Kwietnia 2012 Autor Udostępnij Opublikowano 6 Kwietnia 2012 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 Więcej opcji udostępniania...
Rekomendowane odpowiedzi