Wpis z mikrobloga

Hejka, mam dylemat
Piszę grę w Javie, prosty projekt na parę godzin. Chodzi o popularnego kilka lat temu FlappyBird. Jak powinienem zaimplementować poruszanie się przeszkód i naszego ptaka?
Na razie mam takie pomysły:

1) jeden wątek do obsługi rur, co kilka milisekund zmienia współrzędną X rury i odświeża widok by dać wrażenie przysuwania się rur. Drugi wątek czeka na zdarzenie wciśnięcia klawisza odpowiedzialnego za skok ptaka.

2) wszystko w jednym wątku, w głównej pętli programu porównujemy różnice w czasie systemowym i sprawdzamy ciągle czy klawisz skoku nie został wciśnięty

3) Najgorszy imho, żeby rury nie przesuwały się na końcu w głównej pętli wrzucamy komendę wstrzymania wątku na kilka milisekund, problemem jest że w tym momencie klawisz skoku będzie nieaktywny, jest ot jednak krótki czas więc może być niezauważalne

Która metoda będzie najlepsza? Może odpowiedź jest całkiem inna?

#java #gamedev #programowanie

Obrazek z aktualnym stanem gry dla atencji
Pobierz HeroesIV - Hejka, mam dylemat
Piszę grę w Javie, prosty projekt na parę godzin. Chod...
źródło: comment_2V0PLkoHD32BBiEqUC6rwNSEk69eMoKT.jpg
  • 6
via Wykop Mobilny (Android)
  • 0
@HeroesIV: generalnie wszystkie(większość) gier maja maja funkcje Update() która zapetla się co X ms (najczęściej tak by dobić do framerate, do 30 lub 60 odświeżeń na sekundę), więc to ona powinna odpowiadać za logikę poruszania wszystkim oraz Inputu.