Caporegime Opublikowano 19 Lipca 2012 Udostępnij Opublikowano 19 Lipca 2012 Witam, mógłby ktoś pomóc w takich paru sprawach? 1. Jak zrobić poruszanie po kratce tak, żeby przykładowo gracz klikał na jakimś miejscu na mapie, a bohater podchodzi do niego równo z kratką (wielkość przypuśćmy 32x32)i nie szedł tak sobie po prostej, tylko wyszukiwał drogę mając do wyboru tylko pion i poziom (cztery kierunki)? 2. Da się zrobić takie cuś, żeby przechodząc między pokojami zapamiętywały się wszystkie zmienne, pozycje postaci i tak dalej? Na przykład kiedy bohater wchodzi z room_budynek do room_miasto to żeby pojawiał się w miejscu w którym był ostatnio a nie w tym w którym rozpoczynał się room Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Bedziom Opublikowano 19 Lipca 2012 Udostępnij Opublikowano 19 Lipca 2012 2. Zaznacz "Persistent" w obiekcie roomie. @down - racja, thanks ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 19 Lipca 2012 Udostępnij Opublikowano 19 Lipca 2012 1. GML (Create) gotox = x; gotoy = y; GML (Global Left Released) gotox = (mouse_x div 32) * 32; gotoy = (mouse_y div 32) * 32; GML (STEP) if( x != gotox ) { x += 32; exit; } if( y != gotoy ) { y += 32; } Ps: Kod z stepa lepiej dać w alarmie, inaczej będzie bardzo szybko się poruszał. UP: Źle, ustaw "Persistent" w roomie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Lechu4444 Opublikowano 19 Lipca 2012 Udostępnij Opublikowano 19 Lipca 2012 1. x+32, x-32, y+32, y-32 ;P A jeśli chcesz aby płynnie chodził to dajesz dwie zmienne xd=x, yd=y ruch =false w create potem w step odpowiednio zwiększasz lub zmniejszasz zmienne xd lub yd np: GML if (keyboard_check_pressed(vk_up) && place_free(x,y-32) && ruch==false) { xd=x yd=y-32 ruch =true } następnie gdzieś dalej dajesz GML if(ruch==true) { move_towards(xd,yd,4) /*nie pamiętam dokładnie tej funkcji w każdym razie razie chodzi o to aby poszedł do współrzędnych (xd,yd) z prędkością 4, prędkość musi dzielić liczbę 32 bez reszty inaczej się nie zatrzyma*/ } if(x==xd && y==yd) { ruch=false } powinno działać. ;P 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ę