Dlaczego prędkość obiektów w grze zrobionej w Blenderze jest zmienna na różnych komputerach?


(lutum2012) #1

Zrobiłem grę w Blenderze i wszystko niby pięknie, ale tylko do momentu gdy zacząłem testować grę na różnych komputerach. Problem jest taki, że obiekty, które się poruszają za sprawą ‘Actuator: Motion’ mają inną prędkość na każdym komputerze. Natomiast obiekty animowane poruszają się wszędzie z tą samą prędkością i z tym już nie ma problemu.

Co powinienem zrobić, aby zlikwidować tą rozbieżność? Proszę pomóżcie. Może trzeba coś zaznaczyć gdzieś w ustawieniach, ale nie wiem co.

Tu jest link do gry gdyby ktoś chciał sprawdzić dokładniej to, o czym mówię: https://www.dropbox.com/s/5k1603ytiwwmj2b/cubesindanger2.0.0.exe?dl=0


(Razi) #2

Nie ogarniam BGE, ale ogólnie rozumiem temat.

Zmiana położenia nie jest mnożona przez deltę czasową, tylko na sztywno dodawana.

x' = x + v_x × dt

Gdzie dt to czas od ostatniej aktualizacji (ostatniego wyliczenia nowego stanu świata). Nie wiem gdzie w BGE się to pobiera, ale na pewno gdzieś jest dostępne.

Jako że wyczytałem że ten aktuator ustawia pozycję, to znaczy że gdzieś wcześniej ją wyliczasz, np. przed każdą klatką.
Ten event jest wywoływany „tak często, jak się tylko da”, końcowa szybkość jest zależna od ilości FPSów.