Para hacer un juego simple, utilicé una plantilla que dibuja un lienzo con mapas de bits como este:
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); } }
(El lienzo se define en "run ()" / SurfaceView vive en un GameThread).
Mi primera pregunta es ¿cómo borro (o redibujo) todo el lienzo para un nuevo diseño?
En segundo lugar, ¿cómo puedo actualizar solo una parte de la pantalla?
// 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); } } } }