脏的矩形 - 清除的矩形不再出现

时间:2013-03-12 10:52:45

标签: javascript html5

我想加快我的游戏速度而不是清除所有画布我只清除部分(动画的内容)。 这是我的代码的一部分:

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)错误?为什么它不起作用?

1 个答案:

答案 0 :(得分:0)

  1. clearRect可能不会清除整个rect,因为浏览器中的抗锯齿实现。我认为将clearRect区域扩展一个像素将对您有所帮助。还要尽量避免为画布设置宽度/高度,这会变换视图,有些对象可能会显示模糊

  2. 关于你的代码,地面矩形永远不会是黑色的,因为在 drawMap 函数中你只为一个对象调用 this.obiekt1.draw 方法,所以你周期性地清除以前绘制的区域。尝试提取 clear 方法或为每个地图块创建单独的对象。