Android中的游戏开发

时间:2012-07-31 09:54:01

标签: android android-layout

我一直在使用Surfaceview对于简单的2d赛车开发,我逐渐知道在画布整个表面上使用支架重绘,我想只重绘车身,因为物理位置改变而不是车道,如何只重绘单个组件?

2 个答案:

答案 0 :(得分:0)

您可以在onDraw中使用bool。在你的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()
}

你可以做很多不同的方法,但我觉得这是最简单的方法。

答案 1 :(得分:0)

如果你不重绘不仅仅是汽车,它看起来不会正确。在至少,您还必须绘制汽车在最后一帧中的位置。否则它将显示在两个位置。

来自the developer guide

  

注意:在每次传递中,您从SurfaceHolder中检索Canvas,将保留Canvas的先前状态。为了正确地为图形设置动画,必须重新绘制整个表面。例如,您可以通过使用drawColor()填充颜色或使用drawBitmap()设置背景图像来清除Canvas的先前状态。否则,您将看到先前执行的绘图的痕迹。