pan123 Opublikowano 8 Października 2009 Opublikowano 8 Października 2009 witam właśnie robię strategię i umiem robić tylko np ze jak nacisnę obok żołnierza w prawa stronę (myszką) to zmienia animacje ze stoi w prawa stronę a jak na lewo to na lewą ale jak już chce żeby miał więcej funkcji robię tak samo ze zmiennymi i mi tylko dalej w 2 strony się obraca poradzicie?? coś chce żeby mi w 8 stron się obracał :{
ZeroXbot Opublikowano 8 Października 2009 Opublikowano 8 Października 2009 Zależy jaki dajesz warunek. Ja ci radzę użyć point_direction i do odpowiednich przedziałów kątów dawać odpowiednie animacje ;)
pan123 Opublikowano 8 Października 2009 Autor Opublikowano 8 Października 2009 Ej a mugł byś mi tu kod wkleić plis bo niemoge przypomnieć sobie o co w tym chodziło :( prosze...
Muuuuczek567 Opublikowano 8 Października 2009 Opublikowano 8 Października 2009 Nie jestem pewien, czy o to chodzi, ale w FAQ, w punkcie 12 jest odpowiedni kod. Przekształć go sobie.
Platyna Opublikowano 8 Października 2009 Opublikowano 8 Października 2009 W evencie kliknięcia: GML dir=point_direction(x,y,mouse_x,mouse_y); //wyliczamy kierunek do kursora if(dir<22.5||dir>360-22.5) sprite_index=sprite_prawo; else if(dir<45+22.5) sprite_index=sprite_gora_prawo; else if(dir<90+22.5) sprite_index=sprite_w_gora; else if(dir<135+22.5) sprite_index=sprite_w_gora_lewo; else if(dir<180+22.5) sprite_index=sprite_w_lewo; else if(dir<225+22.5) sprite_index=sprite_w_dol_lewo; else if(dir<270+22.5) sprite_index=sprite_w_dol; else sprite_index=sprite_w_dol_prawo;
Administratorzy gnysek Opublikowano 8 Października 2009 Administratorzy Opublikowano 8 Października 2009 a nie lepiej GML var dir,s; dir=point_direction(x,y,mouse_x,mouse_y) div 45; //wyliczamy kierunek do kursora switch(dir) { case 0: s = sprite_w_prawo; break; case 1: s = sprite_w_prawo_gore; break; case 2: s = sprite_w_gore; break; ... case 7: s = sprite_w_dol_prawo; break; } sprite_index = s; zobacz ile obliczeń i porównań mniej.
Platyna Opublikowano 8 Października 2009 Opublikowano 8 Października 2009 Nie, nie lepiej. Jeśli już to raczej: dir=(point_direction(x,y,mouse_x,mouse_y) + 22.5) div 45; Chciałem by to było dla niego bardziej zrozumiałe. Ja to zrozumiem, ty to zrozumiesz, ale on wątpię :P
ZeroXbot Opublikowano 8 Października 2009 Opublikowano 8 Października 2009 Tylko wtedy trzeba dać poprawkę w postaci GML case 8: s = sprite_w_prawo; break; Bo przy 337.5 (+22.5=360) będzie już zwracało 8 ;)
Platyna Opublikowano 8 Października 2009 Opublikowano 8 Października 2009 Tia. Właśnie do tego doszedłem. Wystarczy default dać :P EDIT: Albo mod 360
pan123 Opublikowano 8 Października 2009 Autor Opublikowano 8 Października 2009 dzięki chłopaki :} a ja umiem :Chciałem by to było dla niego bardziej zrozumiałe. Ja to zrozumiem, ty to zrozumiesz, ale on wątpię " nie no bez przesady obecnie już w c++ dużo dalej jestem niż inna forma" if " XD w każdym bądź razie dzięki
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ę