Skocz do zawartości

Rekomendowane odpowiedzi

Opublikowano

Podczas tworzenia edytora do gry której jeszcze wam nie zapowiadałem :P natrafiłem na problem. Otóż chcę narysować prostokąt złożony z 2 trójkątów figura jest elastyczna czyli się skaluje osobno w osi x i osobno w osi y, oraz może się przekręcać, więc zwykły draw_rectangle tu nic nie zdziała.

 

No i napisałem kod:

GML
var pit;

pit=sqrt(sqr(sprite_width)+sqr(sprite_height));

 

draw_triangle_color(

x+lengthdir_x(0,image_angle),y+lengthdir_y(0,image_angle),

x+lengthdir_x(sprite_width,image_angle),y+lengthdir_y(sprite_width,image_angle),

x+lengthdir_x(sprite_height,image_angle-90),y+lengthdir_y(sprite_height,image_angle-90),$FFFF00,$FFFF00,$FFFF00,1);

 

draw_triangle_color(

x+lengthdir_x(pit,image_angle-radtodeg(cos(sprite_height/pit))),y+lengthdir_y(pit,image_angle-radtodeg(sin(sprite_width/pit))),/*tu jest błąd chyba*/

x+lengthdir_x(sprite_width,image_angle),y+lengthdir_y(sprite_width,image_angle),

x+lengthdir_x(sprite_height,image_angle-90),y+lengthdir_y(sprite_height,image_angle-90),$FFFF00,$FFFF00,$FFFF00,1);

 

pierwszy trójkąt działa poprawnie jednakże pierwszy punkt, drugiego trójkąta jest zwalony.

 

Pomoże mi ktoś wyłapać mój błąd?

 

EDIT:

wychodzi z tego taka kupa:

trjkty.png

Opublikowano

Tą linijkę z błędem zamień na:

GML
x+lengthdir_x(pit,image_angle-radtodeg(arctan2(sprite_height,sprite_width))),y+lengthdir_y(pit,image_angle-radtodeg(arctan2(sprite_height,sprite_width))),/*tu jest błąd chyba*/

 

cos zwraca ci cosinus danego kąta.

Ty potrzebujesz poznać kąt mając długość w pionie i w poziomie (mając tangens). Do tego jest arctan2.

Czyli robiłeś odwrotnie.

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