początkujący Opublikowano 14 Września 2007 Udostępnij Opublikowano 14 Września 2007 Mam pytanie. Napisałem w dwóch wersjach. Krótkiej i długiej :thumbsup: Jaka jest zmienna siatki roomu i jak ją wprowadzić jako pytanie? Jak zrobić, aby obiekt mający jakąś tam prędkość zatrzymał się na siatce roomu. Siatka to np. 32x32 (pierwsze to x, drugie y). Obiekt jest na 48x32 i ma hspeed=-5 (leci w lewo) Teraz chcę zrobić tak, żeby obiekt zatrzymał się na 32x32. Ale gdyby leciał w drugą stronę ma się zatrzymać na 64x32. Mam nadzieję że rozumiecie. Mam już wszystko oprócz tej zmiennej siatki. Pomożecie mi? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 14 Września 2007 Udostępnij Opublikowano 14 Września 2007 move_snap(xsnap,ysnap) i użyj tego gdy obiekt stoi ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
początkujący Opublikowano 14 Września 2007 Autor Udostępnij Opublikowano 14 Września 2007 Właśnie chodzi mi o to żeby obiekt się zatrzymał na tym miejscu a nie żeby przy zatrzymaniu skoczył na siatkę. Jeżeli znasz RoX'a to będziesz wiedział. A jak nie to piszę o co mi chodzi: W step mam takie coś: image_index=roxstop else {if vspeed>0 image_index=roxdol if vspeed<0 image_index=roxgora if hspeed>0 image_index=roxprawo if hspeed<0 image_index=roxlewo} if /*tu mam problem*/ {if (!(keyboard_check(vk_up) and keyboard_check(vk_right) and keyboard_check(vk_down) and keyboard_check(vk_left))) {vspeed=0 hspeed=0}} A w press <up> (na przykład, bo są ustalone wszystkie kierunki) if hspeed=0 //żeby chodził z jednej klatki do drugiej vspeed=-5 //a to to wiesz Rozumiesz mnie teraz? :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 14 Września 2007 Udostępnij Opublikowano 14 Września 2007 stwórz zmienne: xx=0; yy=0; I w Step: if (keyboard_check(vk_right) && xx=0 && yy=0) { xx=32; } if (keyboard_check(vk_left) && xx=0 && yy=0) { xx=-32; } if (keyboard_check(vk_down) && xx=0 && yy=0) { yy=32; } if (keyboard_check(vk_up) && xx=0 && yy=0) { yy=-32; } A na końcu (Najlepiej w EndStep): if (xx=0 && yy=0) { move_snap(32,32); } if (xx>0) { x+=2; xx-=2; } if (xx<0) { x-=2; xx+=2; } if (yy>0) { y+=2; yy-=2; } if (yy<0) { y-=2; yy+=2; } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
początkujący Opublikowano 14 Września 2007 Autor Udostępnij Opublikowano 14 Września 2007 Ten sposób jest lepszy od mojego, ale ciągle to nie jest to. m.in. Obiekt chodzi co ok. 100, zapamiętuje pierwszy ruch i powtarza przy każdym innym ruchu, np: jeżeli na początku wciśniesz <left> pójdzie o ok. 100 w lewo. Jak potem wciśniesz <right> obiekt idzie w w prawą stronę o ok. 100, ale jak wciśniesz <up> obiekt idzie oprócz normalnego ruchu (32 w górę) idzie jeszcze w lewo o ok. 100 z racji tego że to pierwszy wcisnąłeś. Drugi przykład, żeby nie było wątpliwości: jeżeli na początku wciśniesz <up> pójdzie o ok. 100 w górę. Jak potem wciśniesz <right> obiekt idzie oprócz normalnego ruchu (32 w prawo) idzie jeszcze w górę o ok. 100 z racji tego że to pierwszy wcisnąłeś, a jak wciśniesz <down> obiekt idzie w w dół o ok. 100. Rozumiesz? te ok. 100 to tak mniej więcej, liczyłem palcami :D :D 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ę