Revael Opublikowano 19 Stycznia 2015 Udostępnij Opublikowano 19 Stycznia 2015 Otóż mój objekt nazwany obj_player porusza się tylko w lewo i prawo za pomocą move_towards_point(mouse_x,y,32). Ale gdy trzymam kursor w miejscu to ten objekt 'szaleje' i lata na lewo i prawo kiedy ma stać w miejscu. Czy da się zrobić tak aby objekt poruszał się z prędkością myszy? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Uzjel Opublikowano 19 Stycznia 2015 Udostępnij Opublikowano 19 Stycznia 2015 GML if point_distance(mouse_x,mouse_y,x,y) > 80 { move_towards_point(mouse_x,y,32) } *80 to tylko przykładowa wartość Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 20 Stycznia 2015 Udostępnij Opublikowano 20 Stycznia 2015 Być może wystarczy: GML x=mouse_x Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 20 Stycznia 2015 Administratorzy Udostępnij Opublikowano 20 Stycznia 2015 Jeśli ustawisz prędkość poruszania = 4, a postać znajduje się w odległości 6 pikseli od myszy, to nigdy nie trafi na jej pozycję x/y, dlatego, że w każdym evencie STEP przesuwa się o 4 piksele. To znaczy, że w kolejnym kroku będzie o 2 piksele od myszy, a jeszcze następnym o 2 za daleko. Stąd szaleństwo :) Rozwiązania są dwa. Pierwsze, mniej dokładne, bo postać zatrzyma się w odległości mniejszej niż SS pikseli od myszy, gdzie SS to prędkość: GML if point_distance(mouse_x,mouse_y,x,y) >= SS { move_towards_point(mouse_x,y,SS); } albo bardziej dokładne, gdzie zawsze zatrzyma się w tym samym miejscu: GML var d = point_distance(mouse_x,mouse_y,x,y); if d > 0 { move_towards_point(mouse_x,y,min(d, SS)); } Za SS podstaw swoją wartość speeda :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Revael Opublikowano 20 Stycznia 2015 Autor Udostępnij Opublikowano 20 Stycznia 2015 Niestety player jak szalał tak szaleje, żadne rozwiązanie nie jest poprawne :(( Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Lechu4444 Opublikowano 20 Stycznia 2015 Udostępnij Opublikowano 20 Stycznia 2015 To usuń to co miałeś, ewentualnie panowie tu podali kody które trzeba wkleić do step, niemożliwe żeby coś Ci skakało przy x=mouse_x. :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Revael Opublikowano 20 Stycznia 2015 Autor Udostępnij Opublikowano 20 Stycznia 2015 Mam w step evencie : var d = point_distance(mouse_x,mouse_y,x,y); if d > 0 { move_towards_point(mouse_x,y,min(d, 32)); } i gdy trzymam kursor w miejscu to player skacze z lewej na prawa i na odwrot o 32 pixeli Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 20 Stycznia 2015 Udostępnij Opublikowano 20 Stycznia 2015 GML point_distance(mouse_x,mouse_y,x,y) zamień na GML abs(mouse_x-x) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Uzjel Opublikowano 20 Stycznia 2015 Udostępnij Opublikowano 20 Stycznia 2015 Aj Duduś... GML move_towards_point(mouse_x,y,min(abs(mouse_x-x),32)); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Revael Opublikowano 21 Stycznia 2015 Autor Udostępnij Opublikowano 21 Stycznia 2015 Dzięki, teraz działa :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 21 Stycznia 2015 Administratorzy Udostępnij Opublikowano 21 Stycznia 2015 Ach, miałem błędy bo tam jest y a nie mouse_y. Nie wiem czemu założyłem, że w pionie tez się porusza. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
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ę