2013-03-12 41 views
3

我想加快我的遊戲,而不是清除所有畫布,我只清除部分(其中的東西是動畫)。 這是我的代碼部分:骯髒的矩形 - 清除的矩形不再出現

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

爲什麼在clearRect中使用this.width的高度太...? – 2013-03-12 11:02:10

+0

@PrasathK更正,但它仍然是相同的結果。 – Piotrek 2013-03-12 11:06:52

+0

你想要所有清除矩形填充....? – 2013-03-12 11:23:09

回答

0
  1. clearRect並不可能清楚,因爲在你的瀏覽器的抗鋸齒實現整個矩形。我認爲將clearRect區域擴大一個像素會對您有所幫助。也儘量不要將畫布設置寬度/高度,這將改變視圖,某些對象可能顯示模糊

  2. 關於你的代碼,因爲在drawMap函數調用this.obiekt1地面矩形絕不會是黑色的。只爲一個對象提供方法,以便循環清除先前繪製的區域。嘗試提取清除方法或爲每個地圖塊創建單獨的對象。