W jaki sposób działają operacje czasowe w grach?

W jaki sposób działają operacje czasowe w grach?
Soderlight
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 38
0

Piszę sobie gre, i mam problem - chciałbym napisać przeładowanie broni. Czyli po kliknięciu klawisza coś tam się dzieje przez jakiś czas, jakaś mini animacja i to jest jasne, ale w jaki sposób zrobić to tak, żeby przeładowanie trwało np. równo 3 sekundy? (Chciałbym jeszcze dodać zmianę animacji np. w połowie przeładowania). Bo w zasadzie mógłbym to napisać na tickach gry, ale to chyba mija się z celem. Język w którym programuję to Java.

  • Rejestracja: dni
  • Ostatnio: dni
1

Zwyczajnie - masz metodę powiedzmy update której jako parametr podajesz deltę czasu i wywołujesz w dowolnym tempie przed odrysowaniem. Dla każdej animacji podczas update'u zwiększasz coś w rodzaju stateTime i rysujesz klatkę odpowiadającą danej sekundzie
Animacja przeładowania broni zazwyczaj ma się nijak do stanu gry - tj. animacja jest pokazywana jako element dekoracyjny ale to że gracz nie jest w stanie strzelać to oddzielna sprawa. Można po prostu zapamiętać czas w którym zaczęto przeładowanie broni i pozwalać na strzelanie jeśli aktualny czas jest większy niż czas przeładowania + 3 sekundy
Animacją zajmuje się zazwyczaj klient gry, a logiką serwer (w grze sieciowej)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.