Мне нужна помощь с функцией движения для игры на холсте.
Ниже то, что у меня есть, и происходит то, что игрок меняет направление только при нажатии левой/правой клавиши.
Было бы идеально, если бы игрок смотрел в соответствующем направлении, удерживая нажатой клавишу со стрелкой влево или вправо, чего в настоящее время не происходит.
Я понятия не имею, как это сделать, есть идеи?
Теперь у меня есть направление движения, работающее при удержании клавиши, обновленное ниже, но при первой загрузке страницы проигрыватель не отображается на экране, а затем отображается после нажатия клавиши. Что-то неправильно...
var trackRight = 0;
var trackLeft = 1;
var x = 570;
var y = 255; //no collision past here
var srcX;
var srcY;
var speed = 25;
var character = new Image();
character.src = "ptera_purple.png";
function updateFrame() {
curFrame = ++curFrame % frameCount;
srcX = curFrame * width;
ctx.clearRect(0, 0, canvas.width, canvas.height, x, y, width, height);
if (left && x > 0) {
srcY = trackLeft * height; //important for sprite direction
x -= speed;
}
if (right && x < canvasWidth - width) {
srcY = trackRight * height;
x += speed;
}
}
var right = false;
var left = false;
document.addEventListener("keydown", keyDownHandler, false);
document.addEventListener("keyup", keyUpHandler, false);
function keyDownHandler(e) {
if (e.keyCode == 39) {
right = true;
} else if (e.keyCode == 37) {
left = true;
}
}
function keyUpHandler(e) {
if (e.keyCode == 39) {
right = false;
} else if (e.keyCode == 37) {
left = false;
}
}
function moveLeft() { // keyboard controls
left = true;
right = false;
}
function moveRight() {
left = false;
right = true;
}
right
иleft
, чтобы обновить состояние/скорость/направление/что-то еще у игрока? - person nnnnnn   schedule 10.10.2016