Skocz do zawartości

Stop obiektu przy siatce


Rekomendowane odpowiedzi

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

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

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

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

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ę
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...