Skocz do zawartości

Prędkość myszy.


Revael

Rekomendowane odpowiedzi

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

  • Administratorzy

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

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ę
  • Ostatnio przeglądający   0 użytkowników

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