为了制作一个简单的游戏,我使用了一个模板来绘制带有位图的画布,如下所示:

private void doDraw(Canvas canvas) {

for (int i=0;i<8;i++)

for (int j=0;j<9;j++)

for (int k=0;k<7;k++)   {

canvas.drawBitmap(mBits[allBits[i][j][k]], i*50 -k*7, j*50 -k*7, null); } }

(画布在“ run()”中定义,/ SurfaceView位于GameThread中。)

我的第一个问题是如何清除(或重新绘制)整个画布以形成新布局?

其次,如何更新屏幕的一部分?

// This is the routine that calls "doDraw":

public void run() {

while (mRun) {

Canvas c = null;

try {

c = mSurfaceHolder.lockCanvas(null);

synchronized (mSurfaceHolder) {

if (mMode == STATE_RUNNING)

updateGame();

doDraw(c);          }

} finally {

if (c != null) {

mSurfaceHolder.unlockCanvasAndPost(c);  }   }   }       }

Logo

鸿蒙生态一站式服务平台。

更多推荐