var player = {
x : 10.0,
y : 10.0,
color : "blue",
v : 5.0,
size : 10,
render : function (c) {
c.fillStyle = this.color;
c.fillRect(Math.round(this.x), Math.round(this.y), this.size, this.size);
}
};
function update(delta) {
player.x += player.v * (delta/1000);
console.log("px = " + player.x);
}
function mainLoop(timeStamp) {
delta = timeStamp - lastFrameTime;
lastFrameTime = timeStamp;
/* measure frame rate */
curFps = Math.round((1/delta)*1000);
/* game logic */
update(delta);
render();
requestAnimationFrame(mainLoop);
}
Функция update() вызывается каждый кадр, когда необходимо обновить положение игрока. значение дельта ~ 16.00 (время в мс). Почему значение player.x отображается как NaN при печати?Почему этот результат вычисляется в NaN?
Возможно, 'player.v' или' delta' 'undefined'. Каковы значения, если вы их регистрируете? – Kroltan
Показать, как вы называете 'update' .... – epascarello
Вы должны проверить переменную' delta', я запустил ваш код с передачей 'delta = 16' и' console.log ("px =" + player.x); ' show log обычно –