我想加快我的游戏速度而不是清除所有画布我只清除部分(动画的内容)。 这是我的代码的一部分:
this.draw = function(context) {
context.clearRect(this.oldx, this.oldy, this.width, this.width);
if (this.type == "square") {
context.fillRect(this.x, this.y, this.width, this.height);
}
this.oldx = this.x;
this.oldy = this.y;
}
ClearRect可以工作,但不能清除整个矩形。并且所有正方形都应该是黑色的但它们不是(看起来像fillRect不起作用,但我认为它有效)。 在那里你可以看到会发生什么: ... 我是否使用此功能(clearRect)错误?为什么它不起作用?
答案 0 :(得分:0)
clearRect可能不会清除整个rect,因为浏览器中的抗锯齿实现。我认为将clearRect区域扩展一个像素将对您有所帮助。还要尽量避免为画布设置宽度/高度,这会变换视图,有些对象可能会显示模糊
关于你的代码,地面矩形永远不会是黑色的,因为在 drawMap 函数中你只为一个对象调用 this.obiekt1.draw 方法,所以你周期性地清除以前绘制的区域。尝试提取 clear 方法或为每个地图块创建单独的对象。