간단한 게임을 만들기 위해 다음과 같은 비트 맵으로 캔버스를 그리는 템플릿을 사용했습니다.
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); } } } }