Javascript 使用clearRect时无法在画布上绘制多个形状
当我在绘制所有对象之前使用ctx.clearRect时,只绘制最后一个对象(使用更新的chrome和firefox)。 一切都画得不清晰Javascript 使用clearRect时无法在画布上绘制多个形状,javascript,html,canvas,Javascript,Html,Canvas,当我在绘制所有对象之前使用ctx.clearRect时,只绘制最后一个对象(使用更新的chrome和firefox)。 一切都画得不清晰 //in interval for(var i = 0;i<objects.length;i++){ ctx.clearRect(0, 0, canvas.width, canvas.height); objects[i].draw(); } function drawRect(x,y,w,h,fill){ if(fil
//in interval
for(var i = 0;i<objects.length;i++){
ctx.clearRect(0, 0, canvas.width, canvas.height);
objects[i].draw();
}
function drawRect(x,y,w,h,fill){
if(fill)
ctx.fillRect(x-camera.x,y-camera.y,w,h);
else
ctx.strokeRect(x-camera.x,y-camera.y,w,h);
}
function square(pos,size){
object.call(this);
this.pos = pos;
this.size = size;
this.draw = function(){
drawRect(this.pos.x,this.pos.y,this.size.x,this.size.y);
}
}
//在间隔中
对于(var i=0;i您需要将clearRect
方法调用移出循环体:
ctx.clearRect(0, 0, canvas.width, canvas.height);
for (var i = 0; i < objects.length; i++) {
objects[i].draw();
}
ctx.clearRect(0,0,canvas.width,canvas.height);
对于(var i=0;i
否则,您将在每次循环迭代开始时清除画布-这将导致清除除最后一个对象之外的所有对象。您需要将clearRect
方法调用移出循环体:
ctx.clearRect(0, 0, canvas.width, canvas.height);
for (var i = 0; i < objects.length; i++) {
objects[i].draw();
}
ctx.clearRect(0,0,canvas.width,canvas.height);
对于(var i=0;i
否则,您将在每次循环迭代开始时清除画布-这将导致清除除最后一个对象之外的所有对象。我现在觉得很愚蠢,感谢您的响应anyway@eim64喝杯咖啡休息一下:)-如果你对问这个问题感到羞愧,我不介意删除这个答案;)我现在觉得自己很愚蠢,谢谢你的回答anyway@eim64喝杯咖啡休息一下:)-如果你对问这个问题感到羞愧,我不介意删除这个答案;)