Skocz do zawartości

Rekomendowane odpowiedzi

Opublikowano

Może pomoże:

abcq.png

Krótko mówiąc... Masz sobie jakiś trójkąt prostokątny. Przeciwprostokątna (odl na rysunku) to znana długość. Znasz też kąt (a na rysunku). Teraz tymi funkcjami możesz obliczyć x i y, czyli przyprostokątne trójkąta.

Opublikowano

też gówno prawda... znamy przyprostokątne i kąt, dzięki którym obliczamy x i y punktu docelowego. NIGDZIE nie wpisujemy, ani nie potrzebujemy przeciwprostokątnej odl

Opublikowano
też gówno prawda... znamy przyprostokątne i kąt, dzięki którym obliczamy x i y punktu docelowego. NIGDZIE nie wpisujemy, ani nie potrzebujemy przeciwprostokątnej odl

 

wat

jezeli by bylo jak mowisz to by wystarczylo zrobic x += przyprostokatna_x itd

 

 

 

 

Assassin dobrze gada

 

 

pro wyprowadzenie dla tardow

t8s2kp.png

 

x / len = cos(alfa)

wynika to z podstaw trygonometrii ;)

 

i imba przeksztalcenie

x = cos(alfa) * len

 

 

zobaczmy jak wyglada definicja funkcji lengthdir_x

 

return (cos(argument1*pi/180)*argument0)

 

argument1 - kat

argument0 - len

 

skad kat*pi/180? zeby zamienic kat ze stopni na radiany

 

w lengthdir_y jest to samo ale z sinusem

Opublikowano

Jeden z prostszych przykladow:

GML
draw_set_color(c_black)

draw_line_width(x,y,x+lengthdir_x(24,point_direction(x,y,mouse_x,mouse_y)),y+lengthdir_y(24,point_direction(x,y,mouse_x,mouse_y)),3)

draw_set_color(c_aqua)

draw_circle(x,y,16,true)

Kod narysuje kulke i lufe, ktora odwraca sie do punktu, w ktorym jest kursor myszki.

Zeby jeszcze lepiej zobrazowac funkcje lengthdir_x/y, mozesz wklepac taki kod:

GML
draw_rectangle(x,y,x+lengthdir_x(150,point_direction(x,y,mouse_x,mouse_y)),y+lengthdir_y(150,point_direction(x,y,mouse_x,mouse_y)),true)

draw_text(100,100,point_direction(x,y,mouse_x,mouse_y))

Latwo pokaze ci, jak zmienia sie wartosc tych funkcji wraz ze zmiana kierunku.

Opublikowano

dobra kapuje napisałem takie coś co miało sprawdzać "jak to działa":

GML
xx=x+lengthdir_x(150,point_direction(x,y,mouse_x,mouse_y))

yy=y+lengthdir_y(150,point_direction(x,y,mouse_x,mouse_y))

draw_text(x,y,string(yy))

draw_text(x,y+15,string(xx))

instance_create(xx,yy,bull)

i wyszło dobrze

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