Вот игровой цикл. Проблема в функции update. Почему то переменна dt (разница времени настоящего и времени последнего обновления) при присвоении через +=, дает undefined! Что делать ребят:с?
//#############################################################
//#Описание игрового цикла
//#############################################################
var lastTime;
function gameLoop(){
var now = Date.now();
var dt = (now - lastTime);
ctx.clearRect(0,0,cvs.width,cvs.height);
drawMap();
update(dt);// И проблема в этой функции, выглядит она так ->
//function update(dt) {
//player.posX +=Math.floor(player.speedX*dt);
//И в итоге player.posX - undefined, хотя до этого имел значение 50
//
//}
processKey();//обрабатывает нажатие клавиш например ->
// if(isKeyDown("D")){
// player.speedX= 200;
// player.move = true;
//
//
//
// }
drawImage(player.sprite,player.posX,player.posY,player.move);
lastTime = now;
requestAnimationFrame(gameLoop);
}
//#############################################################
dtчерез консоль? Вставьте сразу перед вызовом ф-ииupdateвывод в консоль значения переменнойdt, и в самом начале внутри ф-ииupdate, где-нибудь будет выводитьсяundefinedвместо числа? (Чтобы было понятно какая строка в консоли откуда, можно указать флаги, напримерconsole.log("in update dt = ", dt)) – froxxendsg Mar 22 '19 at 22:06gameLoop, какое значение имеет переменнаяlastTime? Я не увидел, чтобы переменнойlastTimeприсваивалось какое-то значение в коде (см. пример Stranger in the Q), может, она и даётundefined? (Но возможно Вы просто в примере кода упустили это присваивание) – froxxendsg Mar 22 '19 at 22:12