Mógłby mi ktoś najprościej jak to możliwe wytłumaczyć jak zaimplementować ruch w grze?
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;
@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?
Jeżeli korzystasz z IDE XNA:
http://www.xnadevelopment.com/tutorials/thewizard/theWizard.shtml
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.