Skocz do zawartości

Kolizja w platformówce


dexter19

Rekomendowane odpowiedzi

Witam

 

Mój problem pewnie jest banalny ale i tak go muszę napisać. Mianowicie jeżeli skocze w platformówce to gdy ląduje na ziemi to idzie ale zacina się.

 

Kod kolizji jest standardowy:

GML
move_contact_solid(270,4)

vspeed = 0;

 

Jeżeli coś chcecie więcej to napiszcie bo problem może tutaj nie tkwić.

PS.Używam GM8 Lite

Odnośnik do komentarza
Udostępnij na innych stronach

Wątpię, że w tym problem, ale czy nie masz przypadkiem takiego kodu?

Po naciśnięciu klawisza w prawo

GML
if place_free(x+4,y)

sprite_index=spr_hero_right

{x+=4}

?

Bo jeśli tak, to zmień na coś takiego

GML
if place_free(x+4,y)

{

x+=4

sprite_index=spr_hero_right

}

Odnośnik do komentarza
Udostępnij na innych stronach

jeśli chodzi o to, że przy skoku z wyższego miejsca postać "ląduje w powietrzu" żeby później jeszcze raz spaść na podłogę, "wydłuż" zasięg move_contact_solid w kolizji z ziemią

GML
move_contact_solid(270,max(0,vspeed))

vspeed=0

Odnośnik do komentarza
Udostępnij na innych stronach

Czyli, że twoja postać 'wbija' się w obiekt, na który ląduje. Oznacza to m.in. że próba sprawdzenia, czy przed postacią stoi przeszkoda za pomocą place_free() jest z góry skazana na porażkę. Po kodzie lądowania daj:

GML
move_outside_solid(90,vspeed)

 

Pamiętaj też, żeby odpowiednim obiektom zaznaczyć solid.

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