Я учусь создавать игры в JS,
Я добавил фон, характер и движение.
Когда у меня нет ctx.clear (..), персонаж движется, но не очищает предыдущее изображение,
когда у меня есть ctx.clear, я не вижу своего персонажа ...
Я пытался использовать setInterval в качестве функции обновления, но там мой персонаж мигает, и все равно нет ничего хорошего для создания обновления / обновления
document.addEventListener('DOMContentLoaded', () => {
window.requestAnimationFrame(update.bind(this));
update();
movingCharacter.moving(ctx);
});
function update() {
let now
let then = Date.now();
let delta;
now = Date.now();
delta = now - then;
ctx.clearRect(0, 0, canvas.width, canvas.height);
drawFigure.draw(ctx, 0, 0, windowsWidth, windowsHeight,'#000000');
drawImages.draw(ctx, imagesCharacterList.panda, pandaPosition[0],
pandaPosition[1], 50, 50);
window.requestAnimationFrame(update.bind(this));
}
export default class DrawImages {
draw(ctx, image, x, y, width, height) {
const img = new Image();
img.src = image;
img.onload = () => {
ctx.drawImage(img, x, y, width, height);
}
}
}
export const pandaPosition = [100, 200];
export class MovingCharacter {
moving(ctx) {
document.addEventListener('keydown', (key) => {
switch (true) {
case key.keyCode === 87:
pandaPosition[1] -= 1;
break;
case key.keyCode === 83:
pandaPosition[1] += 1;
break;
case key.keyCode === 68:
pandaPosition[0] += 1;
break;
case key.keyCode === 65:
pandaPosition[0] -= 1;
break;
case key.keyCode === 32:
pandaPosition[1] -= 10;
// ctx.clearRect(0, 0, window.innerWidth, window.innerHeight);
break;
}
})
}
}
Я хочу переместить моего персонажа и увидеть его ...