holder.addCallback(new SurfaceHolder.Callback() {
@Override
public void surfaceCreated(SurfaceHolder surfaceHolder) {
if (holder.getSurface().isValid()) {
canvas = holder.lockCanvas();
drawTablero(canvas);
holder.unlockCanvasAndPost(canvas);
}
}
@Override
public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i1, int i2) {
}
@Override
public void surfaceDestroyed(SurfaceHolder surfaceHolder) {
}
});
@Override
public void run() {
if (game == null) {
return;
}
handler.postDelayed(this, 1000 / 15);
this.invalidate();
draw();
game.physics();
game.processInput();
touches.clear();
}
protected void draw() {
if (holder.getSurface().isValid()) {
canvas = holder.lockCanvas();
if (game == null) {
holder.unlockCanvasAndPost(canvas);
return;
} else {
game.draw(canvas);
holder.unlockCanvasAndPost(canvas);
}
}
}