OriPL Opublikowano 9 Lutego 2011 Udostępnij Opublikowano 9 Lutego 2011 Witam dzisiaj zmagam się z problelem odbijania się obiektów. Otóż mam obiekt kulkę która leci pod kontem 45* ... odbija się ona od kwadratu(Jednego z boków) no i według moich obliczeń kont powinien wynosić: 315*... ale GM liczy to jakoś inaczej (albo ja mam jakiś problem w grze) że wylicza kont 320*... problem jest duży ponieważ w mojej grze BARDZO ważne są te konty... pomyłka o 1 i lipa... Nie do końca wiem co z tym zrobić... czekam na jakieś sugestie z waszej strony, może już się ktoś wzmagał z tym problemem. Do odbijania, naturalnie używam: GML move_bounce_solid() ==================== --------*---------------- -----*----*-------------- --*----------*----------- Tak powinno wyglądać to odbicie... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
candy Opublikowano 9 Lutego 2011 Udostępnij Opublikowano 9 Lutego 2011 Podpowiem Ci tak: direction Its current direction (0-360, counter-clockwise, 0 = to the right) Teraz spróbuj pomyśleć jak to wykorzystać. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
OriPL Opublikowano 9 Lutego 2011 Autor Udostępnij Opublikowano 9 Lutego 2011 Niestety brak pomysłu może szeżej mi to rozpiszesz?? Ja wiem jak działa direction... ****90**** ****-***** 180-O-0/360 ****-****** ***270**** Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
candy Opublikowano 9 Lutego 2011 Udostępnij Opublikowano 9 Lutego 2011 Najprościej to będzie sprawdzać jaki jest direction przed zderzeniem z kwadratem, a następnie nadanie mu nowej, odpowiedniej wartości: GML if(direction==xxxx) direction=yyyy; else if(direction==xxxx2) direction=yyyy2; //itd</span> Potem możesz spróbować skrócić kod (znaleźć jakieś zależności pomiędzy kolejnymi if'ami). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
OriPL Opublikowano 9 Lutego 2011 Autor Udostępnij Opublikowano 9 Lutego 2011 to 45* to był przykład... ta kulka może mieć każdy direction (0* - 359*) I tutaj jest własnie problem... gdyby było to takie proste bo już dawno bym to opykał... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Platyna Opublikowano 9 Lutego 2011 Udostępnij Opublikowano 9 Lutego 2011 Jeśli ściany są tylko poziome i pionowe to zrób po prostu: a ) W przypadku odbicia od pionowej GML hspeed=-hspeed b ) W przypadku odbicia od poziomej GML vspeed=-vspeed Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Deusald (Adamentium) Opublikowano 9 Lutego 2011 Udostępnij Opublikowano 9 Lutego 2011 To stwórz sobie skrypt, który liczy kąt odbicia według twojego wzoru(tak jak ty to liczysz). Zapisuj w zmiennej początkową wartość, potem poddaj wzorowi i zamieniaj kierunek. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
karolo320 Opublikowano 10 Lutego 2011 Udostępnij Opublikowano 10 Lutego 2011 Ztób tak jak Platyna mówi ;d przy kolizji hspeed=-hspeed vspeed=-vspeed 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ę