Skocz do zawartości

Schody


Rekomendowane odpowiedzi

Cześć, chcę zrobić w swojej platformówce scenę w bloku, ale mam problem ze schodami, chciałbym, aby działały w następujący sposób.

Chcę, aby działały na zasadzie drabiny z gry Lode Runner. Ogólnie wiecie jak wyglądają drabinki w platformówkach. Chcę aby podczas wchodzenia po schodach nie możliwe było zejście z nich bokiem. Chcę aby podczas wchodzenia była animacja. Wchodzenie w schodzenie - klawisze góra i dół.

Za pomoc dziękuję :)

Odnośnik do komentarza
Udostępnij na innych stronach

Tutaj masz kod, aby postać się nie zapadała w podłoże:

GML
if(keyboard_check(vk_up))//idzie do góry

{

if(collision_point(x,y+15,obj_schody,1,0))// jeżeli ma kolizję ze schodami (15 punktów poniżej Origin Y)

y-=5;//to idź do góry

}

else if(keyboard_check(vk_down))//analogiczna sprawa.

{

if(collision_point(x,y+20,obj_schody,1,0))

y+=5;

}

Jeżeli chodzi o sterowanie, to ja zawsze wklejam to do STEP END. Collision with obj_sciana możesz usunąć. Postać może poruszać się w lewo i w prawo wchodząc po schodach, co może spowodować, że zacznie chodzić w powietrzu jak za bardzo wyjdzie. Dopisz kod, który to uniemożliwi (coś podobnego do tego, ale w kierunku X).

 

Możesz jeszcze zrobić tak, że gdy naciśniesz strzałkę w górę, to postać będzie iść do góry do momentu, w którym skończą się schody. Analogicznie w dół. Gdy idzie blokujesz sterowanie i spokojnie czekasz, aż postać osiągnie swój cel.

Odnośnik do komentarza
Udostępnij na innych stronach

chcę wrzucić kod grawitacji, ale jak wklepuję to:

GML
if(place_free(x,y+1)) //jeśli gracz nic nie ma pod nogami...

vspeed+=1; //...zaczyna opadać</span>

 

kiedy znajdę się piksel nad ziemią postać zapada się w nią (wcześniej normalnie po niej chodziła)

Odnośnik do komentarza
Udostępnij na innych stronach

Ponieważ masz vspeed nie jest wyzerowane. Będzie ciągle przesuwał się o xx pikseli w dół. Musisz dopisać kod, który sprawdzi czy postać ma kontakt z podłożem i wyzerować vspeed. Następnie korzystasz z move_contact_solid(argumenty), żeby ustawić postać na podłożu.

 

E: Jeżeli postać jest na schodach, to musisz wyłączyć grawitację.

Odnośnik do komentarza
Udostępnij na innych stronach

Tak jak napisałem wcześniej. Zrób podobny kod, który Ci podałem:

GML
if(collision_point(x +/- xyz,y,obk_schody,1,0))// sprawdzasz teraz w kierunku x nie y

x +/- = xyz;

 

Byłoby dobrze jeżeli skorzystasz z maski dla bohatera (poczytaj o tym na forum, wiele razy było). Maska ułatwia kodzenie w platformówkach.

 

A tak swoją drogą, jak będziesz się szybko poddawał, to dużo nie osiągniesz. Lepiej posiedzieć godzinę/dwie , samemu napisać dwie linijki kodu i zrozumieć jak działają funkcję. To zawsze zaprocentuje.

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ę...