2012-07-31 131 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()设置背景图像来清除画布的以前状态。否则,您会看到之前执行的图纸的痕迹。