2013-06-04 33 views
1

我使用<canvas>JavaScript創建了HTML 5遊戲。如何重新繪製畫布的特定部分?

在我的畫布中,我正在加載高分辨率圖像。在每個分鐘中都會有一些對象出現在這個畫布上。如果用戶點擊它。它會從屏幕上移除。

我的問題:

我使用clearRect()功能清除畫布。再次重新繪製所有圖像。是否有必要每次重新繪製整個內容?是否有任何選項可以重新繪製該特定區域?

當我使用clearRect()來清除該對象的確切區域。背景圖像也被刪除。有什麼方法可以保存背景圖片的特定部分,並用保存的圖片繪製該部分? (因爲我的物體在畫布上移動,我需要動態地檢索圖像數據)

我是WebTechnology和HTML 5的新手。所以請幫助我。在此先感謝

+1

爲什麼不建立畫布圖層,然後清除指定的圖層,以便不需要清除的背景放在一個圖層上圖層,然後是繪製另一個圖層的部分,只需在該圖層上使用clearRect – Pete

+0

@Pete:感謝您的建議 –

回答

2

將畫布視爲繪畫,一旦應用內容就不可能刪除「圖層」。您可以使用clearRect(x,y,height,width)指定畫布的一部分清除,但您總是需要重新繪製刪除的背景。 drawImage()函數需要參數來在特定位置繪製圖像的特定部分,但可能更符合您要使用的是imageData。

我建議你做一些在畫布上讀了這裏Mozilla Dev Network: Canvas

+1

要保存背景圖像或多個圖像,您還可以使用多個畫布元素。 – Reko

+0

非常真實,我假設他會在一個畫布上工作。 –

+0

感謝您的回答 –