ZeroXbot Opublikowano 18 Października 2008 Udostępnij Opublikowano 18 Października 2008 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 Więcej opcji udostępniania...
Gość Opublikowano 18 Października 2008 Udostępnij Opublikowano 18 Października 2008 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 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ZeroXbot Opublikowano 18 Października 2008 Autor Udostępnij Opublikowano 18 Października 2008 Dzięki za to wytłumaczenie, ale chodziło mi o kod jako całość, a nie rozkładanie go za czynniki. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Opublikowano 18 Października 2008 Udostępnij Opublikowano 18 Października 2008 Ach tak ! Kod tworzy obiekt płomień (flame) w miejscu zmiennych xx oraz yy tylko po naciśnięciu spacji. Zmienne opisałem i rozłożyłem na składniki. No a efekt - widzisz w przykładzie... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ZeroXbot Opublikowano 18 Października 2008 Autor Udostępnij Opublikowano 18 Października 2008 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 Więcej opcji udostępniania...
Gość Opublikowano 18 Października 2008 Udostępnij Opublikowano 18 Października 2008 Można używać bez zmiany liczb :) A kod dobrze rozumiesz :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
lenin Opublikowano 18 Października 2008 Udostępnij Opublikowano 18 Października 2008 Tak, możesz użyć także do innych obiektów, a zmieniając te wartości odsuniesz/przybliżysz/przesuniesz te punkty xx i yy. Podobnie ma się sprawa z GML lengthdir_x i lengthdir_y które działają na podobnych zasadach ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ZeroXbot Opublikowano 18 Października 2008 Autor Udostępnij Opublikowano 18 Października 2008 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 Więcej opcji udostępniania...
Matthew Opublikowano 18 Października 2008 Udostępnij Opublikowano 18 Października 2008 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 Więcej opcji udostępniania...
ZeroXbot Opublikowano 19 Października 2008 Autor Udostępnij Opublikowano 19 Października 2008 Ok, a więc jak zrobić, żeby rzecz robiła się za obiektem (tak daleko, żeby go nie dotykała)? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Opublikowano 19 Października 2008 Udostępnij Opublikowano 19 Października 2008 W ogóle ma go nie dotykać, czy jak? Dobra przerobie Ci przykład, ale powiedz jak daleko za? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ZeroXbot Opublikowano 19 Października 2008 Autor Udostępnij Opublikowano 19 Października 2008 Chodzi mi o to, że obiekt by zostawiał obiekt "klej", który by zwalniał przeciwników, no ale także jego. Chodzi mi o to by odległość między nimi była minimalna, byleby ich sprite'y nie zachodziłyby na siebie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Opublikowano 19 Października 2008 Udostępnij Opublikowano 19 Października 2008 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 Więcej opcji udostępniania...
Rekomendowane odpowiedzi
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ę