Skocz do zawartości

Ruch po okręgu


candy

Rekomendowane odpowiedzi

GML (CREATE)
ox = x;

oy = y;

// ox i oy to środek okręgu

kat = 0; // obrót

promien = 32; // promień

move_speed = 10; // szybkość obrotu

GML (STEP)
kat += move_speed; // zwiększamy obrót

if (kat >= 360)

kat -= 360; // zabezpieczenie przed wielkimi wartościami (kąt większy niż 360 nie może być)

x = ox + lengthdir_x(promien, kat);

y = oy + lengthdir_y(promien, kat);

// ustalamy pozycję

Odnośnik do komentarza
Udostępnij na innych stronach

  • 3 miesiące temu...
GML (CREATE)ox = x;

oy = y;

// ox i oy to środek okręgu

kat = 0; // obrót

promien = 32; // promień

move_speed = 10; // szybkość obrotu

GML (STEP)kat += move_speed; // zwiększamy obrót

if (kat >= 360)

kat -= 360; // zabezpieczenie przed wielkimi wartościami (kąt większy niż 360 nie może być)

x = ox + lengthdir_x(promien, kat);

y = oy + lengthdir_y(promien, kat);

// ustalamy pozycję

 

Przerobilem ten kod na wlasne potrzeby czyli obietem jest bohater a srodkiem okregu kursor, chcialbym jednak aby obiekt niezaleznie od promienia poruszal sie z pewna stala predkoscia i tu moje pytanie:

Jak ustalic predkosc poruszania sie po okregu?

Z gory dzieki

Odnośnik do komentarza
Udostępnij na innych stronach

naucz sie czytać albo coś...

 

GML
GML (CREATE)ox = x;

oy = y;

// ox i oy to środek okręgu

kat = 0; // obrót

promien = 32; // promień

move_speed = 10; // szybkość obrotu <<--------------------------TU CI PISZE

GML (STEP)kat += move_speed; // zwiększamy obrót

if (kat >= 360)

kat -= 360; // zabezpieczenie przed wielkimi wartościami (kąt większy niż 360 nie może być)

x = ox + lengthdir_x(promien, kat);

y = oy + lengthdir_y(promien, kat);

// ustalamy pozycję</span></span>

Odnośnik do komentarza
Udostępnij na innych stronach

Załóżmy, że chcesz, aby przedmiot poruszał z prędkością 10, ale tak jakby był ciągle promień 32 nawet jak go będziesz zwiększać. Musisz ułożyć proporcje ( odwrotnie prop. ), żeby speed się odpowiednio zmniejszał.

 

32 – 10 // tutaj są te "stałe"

promień ( np. 100 ) – x

 

promień * x = 32 *10

x = ( 32 *10 ) / promień

 

a więc przy ustalaniu prędkości musisz wpisać

GML
move_speed = ( 32 * 10 ) / promien;
Odnośnik do komentarza
Udostępnij na innych stronach

Załóżmy, że chcesz, aby przedmiot poruszał z prędkością 10, ale tak jakby był ciągle promień 32 nawet jak go będziesz zwiększać. Musisz ułożyć proporcje ( odwrotnie prop. ), żeby speed się odpowiednio zmniejszał.

 

32 – 10 // tutaj są te "stałe"

promień ( np. 100 ) – x

 

promień * x = 32 *10

x = ( 32 *10 ) / promień

 

a więc przy ustalaniu prędkości musisz wpisać

GMLmove_speed = ( 32 * 10 ) / promien;

 

Dzieki, tego mi było trzeba =)

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