【发布时间】:2020-07-31 03:55:03
【问题描述】:
我正在使用 JavaScript、HTML 和 CSS 制作游戏。游戏将显示在 HTML5 画布上。当按下箭头键时,玩家移动。问题是当播放器移动图像时,图像会出现又消失,因为我使用的是 ctx.clearRect()。有没有办法在不使用 ctx.clearRect() 的情况下移动图像?
这是我的 script.js 文件:
var canvas = document.getElementById("game");
var ctx = canvas.getContext("2d");
var playerImg = new Image();
var player = {
x: 200,
y: 375,
width: 50,
height: 50
}
function draw() {
playerImg.onload = function () {
ctx.drawImage(playerImg, player.x, player.y, player.width, player.height);'
}
playerImg.src = "images/player.png";
}
document.body.addEventListener("keydown", function (event) {
if (event.keyCode == 37) {
ctx.clearRect(player.x, player.y, player.x + player.width, player.y + player.height);
player.x -= 15;
}
else if (event.keyCode == 39) {
ctx.clearRect(player.x, player.y, player.x + player.width, player.y + player.height);
player.x += 15;
}
}, false);
setInterval(draw);
【问题讨论】:
-
您正在定义图像的 src 并将相同的 onload 侦听器添加到
playerImg每秒几次。将那些从draw函数中拉出来。
标签: javascript html html5-canvas