public void Passed() { // TODO:set animation and turn to the next stage if current level is not 6 LevelDatabaseHelper databaseHelper; databaseHelper = new LevelDatabaseHelper(OnGame.this, "LevelData", 1); SQLiteDatabase db; db = databaseHelper.getReadableDatabase(); LevelDatabaseHelper.Unlock(db, 0, 0); }
public void handleMessage(Message msg) { switch (msg.what) { case TIME_1S: int timeLeft = Integer.parseInt(timeText.getText().toString()) - 1; timeText.setText(Integer.toString(timeLeft)); if (timeLeft == 0) { timer.cancel(); gameOver.setMessage("Time is up! Again ?"); gameOver.show(); } break; case RESET_TIME: timeText.setText("100"); timer = new Timer(); timerTask = new TimerTask() { public void run() { Message msg = new Message(); msg.what = TIME_1S; handler.sendMessage(msg); } }; timer.schedule(timerTask, 1000, 1000); break; case MOVE_IMAGE: if ((speedX > 0 && acceleratorX < 0) || (speedX < 0 && acceleratorX > 0)) speedX -= 2 * acceleratorX; else speedX -= 0.1 * acceleratorX; if ((speedY > 0 && acceleratorY < 0) || (speedY < 0 && acceleratorY > 0)) speedY += 2 * acceleratorY; else speedY += 0.1 * acceleratorY; int dx = (int) (speedX * 0.05); int dy = (int) (speedY * 0.05); View v = findViewById(R.id.image); int left = v.getLeft() + dx; int top = v.getTop() + dy; int right = v.getRight() + dx; int bottom = v.getBottom() + dy; if (left < 20) { left = 20; right = left + v.getWidth(); speedX = 0; } if (right > screenWidth - 20) { right = screenWidth - 20; left = right - v.getWidth(); speedX = 0; } if (top < 100) { top = 100; bottom = top + v.getHeight(); speedY = 0; } if (bottom > screenHeight - 20) { bottom = screenHeight - 20; top = bottom - v.getHeight(); speedY = 0; } if (arrayMap.isCollision(left, top, right, bottom) != 0) { MessageSend(COLLISION); top = v.getTop(); bottom = v.getBottom(); if (arrayMap.isCollision(left, top, right, bottom) == 1) { speedY = 0; top = v.getTop(); bottom = v.getBottom(); } else if (arrayMap.isCollision(left, top, right, bottom) == 2) { speedX = 0; left = v.getLeft(); right = v.getRight(); } } else if (arrayMap.isArrive(left, top, right, bottom)) { MessageSend(NEXT_LEVEL); left = v.getLeft(); top = v.getTop(); right = v.getRight(); bottom = v.getBottom(); LinearLayout map = (LinearLayout) findViewById(R.id.map); map.removeAllViews(); speedX = speedY = 0; } else if (arrayMap.isDead(left, top, right, bottom)) { left = v.getLeft(); top = v.getTop(); right = v.getRight(); bottom = v.getBottom(); speedX = speedY = 0; removeImage(); gameOver.show(); MessageSend(ACCELERATOR_STOP); } v.layout(left, top, right, bottom); break; case NEXT_LEVEL: LevelDatabaseHelper dbhelper = new LevelDatabaseHelper(OnGame.this, "LevelData", 1); SQLiteDatabase db = dbhelper.getReadableDatabase(); // db.execSQL("update levellock set lock=? where difficulty=? and level=?", // new Object[]{0,difficulty,level+1}); LevelDatabaseHelper.Unlock(db, level, difficulty); nextLevel.show(); break; case BALL_START: // BallStart(); break; case ACCELERATOR_STOP: SManager.unregisterListener(listener); acceleratorX = 0; acceleratorY = 0; speedX = 0; speedY = 0; break; } }