我正在尝试用JavaScript制作Boomshine游戏的变体,当我使用arc函数绘制圆形时一切正常。但是,当我尝试使用drawImage函数替换arc函数以使用硬币图像而不是圆形时,在清除画布以删除先前绘制的圆形形状时就会出现问题。如果在渲染图像之前不清除画布,则会在画布上绘制图像,但旧图像仍然存在于画布上。但是,当我在再次渲染图像之前清除画布时,画布上没有绘制任何内容。
我已经包含了屏幕截图,链接如下。
这是我清除画布的方法:
这是我绘制图像的方法:
我已经包含了屏幕截图,链接如下。
这是我清除画布的方法:
var ctx = game.context;
ctx.fillStyle = "darkgray";
ctx.fillRect(0, 0, game.canvas.width, game.canvas.height);
这是我绘制图像的方法:
function drawImageBall(x,y,radius,startAngle,color)
{
var img = document.createElement('img');
img.src = 'img/coin-icon.png';
var tmpCtx= game.context;
var ax = x-radius;
var ay = y-radius;
img.onload = function() {
tmpCtx.save();
tmpCtx.beginPath();
tmpCtx.arc(x, y, radius, 0, Math.PI * 2, true);
tmpCtx.closePath();
tmpCtx.clip();
tmpCtx.drawImage(img, ax, ay, img.width, img.height);
tmpCtx.beginPath();
tmpCtx.arc(0, 0, radius, 0, Math.PI * 2, true);
tmpCtx.clip();
tmpCtx.closePath();
tmpCtx.restore();
};
}
drawImageBall
时都绘制。 - nasso