Marrac Opublikowano 18 Listopada 2007 Udostępnij Opublikowano 18 Listopada 2007 Mam mały problem z obracaniem postaci. Postać obraca się względem pozycji myszki. No i tutaj występuje mały problem z obracaniem w prawo, ponieważ postać nie chce obracać się w prawo a w każdą inną stronę obraca się bez zarzutu. Nie wiem dlaczego i w czym jest błąd. Daje tutaj kod. dir=point_direction(x,y,mouse_x,mouse_y) if (dir > 135 && dir < 225)sprite_index=Lewo if (dir > 315 && dir < 45)sprite_index=Prawo if (dir > 225 && dir < 315)sprite_index=Dol if (dir > 45 && dir < 135)sprite_index=Gora Proszę o pomoc. Marrac. EDIT: Sorry. Miało być 45. Nie wiem dlaczego dałem kod z 46 :P. Lecz z 45 też nie działa. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Yoda Opublikowano 18 Listopada 2007 Udostępnij Opublikowano 18 Listopada 2007 Może: if (dir > 315 && dir < 45) :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Copperdragon Opublikowano 18 Listopada 2007 Udostępnij Opublikowano 18 Listopada 2007 W zasadzie to prawidłowy kod powinien być taki: dir=point_direction(x,y,mouse_x,mouse_y) if (dir >= 135 && dir < 225)sprite_index=Lewo if (dir >= 315 or dir < 45)sprite_index=Prawo if (dir >= 225 && dir < 315)sprite_index=Dol if (dir >= 45 && dir < 135)sprite_index=Gora Rozumie się to samo przez się: przecież kierunek nie może być jednocześnie mniejszy od 45 i większy od 315. :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 18 Listopada 2007 Udostępnij Opublikowano 18 Listopada 2007 W zasadzie można to uprościć. var d; d = ( ( point_direction( x, y, mouse_x, mouse_y ) + 45 ) div 90 ) mod 4; switch( d ) { case 0: sprite_index = Prawo; break; case 1: sprite_index = Gora; break; case 2: sprite_index = Lewo; break; case 3: sprite_index = Dol; break; } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marrac Opublikowano 19 Listopada 2007 Autor Udostępnij Opublikowano 19 Listopada 2007 @Copperdragon No tak nie może być jednocześnie mniej niż 45 a więcej niż 315 :P @Topic Dzięki za pomoc ;) Wszystko już dobrze działa i zaczynam prace dalej :) Wezmę kod Tymona bo jest prostszy ;) Marrac. 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ę