Ruch w grze - wytłumaczenie jego implementacji

0

Mógłby mi ktoś najprościej jak to możliwe wytłumaczyć jak zaimplementować ruch w grze?

2

Każdy poruszający się obiekt ma wektor przemieszczenia i w każdej wyświetlanej klatce robisz na obiekcie operacje:

obiekt.x+=CzasRysowaniaKlatki*wektor_przemieszczenia.x;
obiekt.y+=CzasRysowaniaKlatki*wektor_przemieszczenia.y;
0

@Spine można jakoś na przykładzie, bo nie rozumiem.
Przez obiekt rozumiemy "przedmiot" który ma być poruszany, czas klatki - jak szybko, a wektor przemieszczenia?

0
kotecekify napisał(a):

@Spine można jakoś na przykładzie, bo nie rozumiem.
Przez obiekt rozumiemy "przedmiot" który ma być poruszany, czas klatki - jak szybko, a wektor przemieszczenia?

Wektor przemieszczenia to wektor kierunkowy. Jeśli np. obiekt porusza się z prędkością 15 jednostek na sekundę w lewo, to jego wektor kierunkowy będzie wyglądał tak:
( -15.0 , 0.0 ).

Mnożymy wektor kierunkowy przez czas rysowania poprzedniej klatki, ponieważ w czasie jednej sekundy suma czasów wynosi 1.0. Dlatego niezależnie czy gra wyciąga 45FPS, czy 60FPS, to uzyskamy w miarę jednakowe zachowanie aplikacji (nie będzie u jednych działać szybciej, u innych wolniej). Tak samo przez czas klatki mnożymy prędkość obrotów obiektu. No i stosując takie podejście nie trzeba sztucznie robić ograniczenia ilości klatek jakimś Sleepem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1