所以我明白,要獲得幀率獨立運動,我必須乘以(1000/delta)的基本速度。它適用於表示速度的值,但是當我使用加速度變量嘗試時,例如重力,它不會工作,它甚至不是幀速率獨立。幀率獨立加速度
是否有加速度變量的不同公式,或者我忘記了其他東西?
實施例:
var Multiplier:Number = (GetDeltaTime())/(1000/30);
jumpVelocity = -21 * Multiplier //works
gravity = 1.5 * Multiplier //dosn't work
這就是所謂的在每幀
編輯的開始:實測值的溶液中,我不得不方增量時間。不是100%確定它爲什麼有效,但確實如此。
所以:
jumpVelocity = -21 * Multiplier //unchanged
gravity = 1.5 * Math.pow(Multiplier,2) //works now
我對動作一無所知,但我知道物理,這對我來說毫無意義。你知道單位嗎?你能給我們一些數字,並告訴我們出了什麼問題(不只是「它不會工作」)? – Beta 2011-03-10 17:28:26
單位是像素/ 30秒。基本上,除加速度,重力和摩擦外,一切都可以工作。所有這些都會改變速度,而不是座標。在更高的幀速率下,這些值似乎增加(例如更快的加速度,更高的重力)。 – lordSimon 2011-03-11 04:30:03