Skocz do zawartości

Płynne rozpędzanie się postaci.


Rekomendowane odpowiedzi

W <Left> czy jakiego klawisza używasz dajesz coś w tym stylu (pseudo-GML)

 

if (hspeed<wartość maksymalna){
   hspeed +=hspeed+przyspieszenie
}
self.moving = true;

 

W step natomiast coś takiego

 

if hspeed>0{
hspeed -= tarcie
} else {hspeed +=tarcie}

 

Dodatkowo coś takiego, aby uniknąć ślizgania się postaci po puszczeniu klawisza:

Released <left>

self.moving = false

Teraz wracając do step:

 

if not moving {
var prog = 0.5
if ((hspeed < prog) && (hspeed > 0)){
hspeed = 0
} else {
if ((hspeed > -prog) && (hspeed < 0)){
hspeed = 0
}
}
}

 

Zabezpieczy nas to przed ślizganiem się postaci po puszczeniu klawisza gdy postać rusza się na tyle wolno żeby "tarcie" nic nie robiło. Próg trzeba dostosować - jego wartość zależy od różnych czynników i najlepiej dobrać wartość eksperymentalnie.

 

//edit: Podobnie robisz dla vspeed jeśli to ma być gra top-down.

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