我試圖使基於時間和FPS角色人物跳躍。使基於FPS和時間
我需要的是讓我的角色跳到最後1秒。現在我正在使用下面的代碼,它使得角色跳躍1秒。但問題是..如果fps是60個字符移動60個像素,如果FPS是30它的動作只有30個像素...我怎樣才能解決這個..
我需要角色移動60個像素,無論FPS 1秒之內。
//Below is the requestanimation frame loop
// which runs the loop 60 to 30 times per second ,
// which vary according to browser.
function jumpcheck()
{
if(isjump)
{
ball.posy -=1; //make the character move 10 px based on fps..
window.timeoutHandle = window.setTimeout(function() {
isjump = false;
}, 1000);
}
}
}
注意:請求動畫幀fps是20到60之間的東西總是在變化。
代碼由constantinous
var lastUpdate = Date.now();
function jumpcheck()
{
if(isjump)
{
speed = 1;
position = ball.posy;
var now = Date.now();
var dt = (now - lastUpdate)/1000;
lastUpdate = now;
ball.posy = position + (speed * dt)
}
}
用你得到的時間戳作爲參數傳遞給在英國皇家空軍回調來計算增量時間,然後確定你需要多少移動你的性格。 – Sacho