Skocz do zawartości

Problem z pewnym kodem.


ZeroXbot

Rekomendowane odpowiedzi

Mam kolejny problem. W przykładzie z miotaczem ognia spotkałem sie z takim kodem:

GML
if ( keyboard_check( vk_space ) )

{

xx = x + sin( degtorad( direction + 90 ) ) * 16;

yy = y + cos( degtorad( direction + 90 ) ) * 16;

instance_create(xx,yy,flame);

}

Chodzi mi o to, że nie miałem jeszcze w szkole funkcji trygonometrycznych, ani pojęcia radian więc, czy mógłby mi ktoś powiedzieć za co odpowiedzialny jest ten kawałek kodu (3 i 4 linia kodu)?
Odnośnik do komentarza
Udostępnij na innych stronach

sinus, cosinus - sinus ? oznaczany sin ? stosunek przyprostokątnej a; przeciwległej do kąta ostrego i przeciwprostokątnej c;

cosinus (lub kosinus) ? oznaczany cos ? stosunek przyprostokątnej przyległej b; do kąta ostrego i przeciwprostokątnej c;

 

 

degtorad - zmien na radiany (miara kata płaskiego w SI)

direction = dokumentacja

+ 90 -trzeba tłumaczyć??

*16 - wszystko * 16

 

c6372d47685d7f03f82c5d35cd64a3fa.png

Odnośnik do komentarza
Udostępnij na innych stronach

Rozumiem, że x + sin( degtorad( direction + 90 ) ) * 16 i ten drugi oblicza punkt na okręgu zataczanym przez obiekt strzelający, z którego "wydobywa się ogień". Zatem czy można tego użyć do dowolnego innego obiektu, czy trzeba by było zmiennić wartości liczbowe przy innym rozmiarze obiektu?

Odnośnik do komentarza
Udostępnij na innych stronach

Z jednej strony rozumiem, o co w tym chodzi, ale z drugiej mam takie poczucie niewiedzy i nie chcę czekać aż do liceum, zeby to zrozumieć :/ Czy trygonometria jest naprawdę taka trudna, czy poprostu potrzebuję zobrazowania na przykładach jak to działa? Gdyby nie to pewnie już bym w tym kierunku śmigał (Może nie aż tak, ale dobrze bym sobie radził).

Odnośnik do komentarza
Udostępnij na innych stronach

trygonometria to tylko wzory:

 

tg(alfa) = przyprostokątna naprzeciw kąta alfa / przyprostokątna obok kąta alfa

ctg(alfa) = przyprostokątna obok kątowi alfa / przyprostokątna naprzeciw kąta alfa

 

sin(alfa) = przyprostokątna naprzeciw kąta alfa / przeciwprostokątna

cos(alfa) = przeciwprostokątna / przyprostokątna naprzeciw kąta alfa

 

są jeszcze arctg i arcsin, które obliczają kąt na podstawie stosunku boków trójkąta prostokątnego.

 

W tym kodzie co dałeś mnoży się stosunek boków (sin i cos) przez długość kratki i wychodzi ci przesunięcie x i y.

Odnośnik do komentarza
Udostępnij na innych stronach

Musisz zrobić inne XX oraz YY... A teraz w zależności w jakim kierunku jesteś zwrócony musisz tworzyć inaczej obiekt. W edicie dam przykład.

E: AAA pomyliłem się... Chcesz tworzyć zawsze za obiektem :) Spoko zaraz się zrobi!

E2 : Dobra chłopie:

1. Nie zmieniasz nic w kodzie!

2. Zmieniasz orginy, czyli :

a)masz zapisany projekt? Jeśli tak zmieniasz tryb na ADVENCED, czyli w GM klikasz File i zaznaczasz Advenced Mode

b)wchodzisz w ustawienia sprite'a bohatera klikając na SRITE'a dwukrotnie.

c)zmieniasz orgin x na (w zależności od wielkości sprita) połowę X na minusie (np. sprite 32x32 zmieniasz -16x16, a wcześniej miałeś 16x16) Y pozostawiasz bez zmian

d)uruchamiasz i sprawdzasz czy działa :)

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