2012-07-31 144 views
0

我一直在使用Surfaceview對於簡單的2D賽車開發,因爲我知道在畫布上使用支架整個表面正在重繪,我只想重新繪製汽車,因爲物理位置改變而不是車道,如何重新繪製只有單一的comopnent?Android中的遊戲開發

回答

0

你可以在你的onDraw中使用bools。在您的onDraw你有一個檢查,如

if(carMoved == false) 
{ 
    // draw everything 
} 
else 
{ 
    // draw your car 
    carMoved = false; // this resets your onDraw so your whole canvas is re-drawn next time you invalidate() 
} 

有proabably很多不同的方式,你可以做到這一點,但是我覺得這是最簡單的方法。

0

如果您不重新繪製更多的車,它不會看起來不錯。在最少,你還必須畫出車在最後一幀的位置。否則它會顯示在兩個位置。

the developer guide

注:在每一個與你擦肩而過檢索來自SurfaceHolder畫布,畫布以前的狀態將被保留。爲了正確地繪製圖形的動畫,必須重新繪製整個表面。例如,您可以通過使用drawColor()填充顏色或使用drawBitmap()設置背景圖像來清除畫布的以前狀態。否則,您會看到之前執行的圖紙的痕跡。