Example #1
0
  public GameScene() {
    activity = BaseActivity.getSharedInstance();
    setBackground(new Background(Color.WHITE));
    mCamera = BaseActivity.getSharedInstance().mCamera;
    ball = Ball.getSharedInstance();
    enemies = new LinkedList();
    enemiesToBeAdded = new LinkedList();
    enemyCount = 0;
    activity.score = new Score();
    bonusHit = true;
    shieldHit = true;
    activity.isShield = false;

    scoreText =
        new Text(
            0,
            0,
            activity.mFont,
            "Score: 0000000",
            BaseActivity.getSharedInstance().getVertexBufferObjectManager());
    scoreText.setText(activity.score.toString());
    scoreText.setPosition(10, 3);

    attachChild(activity.backgroundSprite);
    attachChild(ball.sprite);
    attachChild(scoreText);
    activity.backgroundSprite.setZIndex(0);
    activity.ballSprite.setZIndex(2);
    activity.shieldSprite.setZIndex(3);
    scoreText.setZIndex(5);

    activity.setCurrentScene(this);
    sensorManager =
        (SensorManager)
            BaseActivity.getSharedInstance().getSystemService(BaseGameActivity.SENSOR_SERVICE);
    SensorListener.getSharedInstance();
    sensorManager.registerListener(
        SensorListener.getSharedInstance(),
        sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
        SensorManager.SENSOR_DELAY_GAME);

    resetValues();
    createSpriteSpawnTimeHandler();
    registerUpdateHandler(detect);
    createScoreTimeHandler();
    createBonusSpawnTimeHandler();
    createShieldSpawnTimeHandler();

    for (int i = 0; i < 3; i++) {
      addTarget();
      enemyCount++;
    }
    isLoseNow = false;
  }
 private void startSensors() {
   Logger.d(this, "startSensors");
   // Clock.
   mSessionStartTimeMillis = SystemClock.elapsedRealtime();
   Preferences.storeStartTime(this, mSessionStartTimeMillis);
   // Sensors.
   registerSensors();
   if (mListener != null) {
     mListener.onSensorStart(mSessionStartTimeMillis);
   }
 }
 private void stopSensors() {
   Logger.d(this, "stopSensors");
   // Store data.
   saveSessionData();
   // Clear state.
   Preferences.clearStoredValues(this);
   mSessionStartTimeMillis = Integer.MIN_VALUE;
   mSessionInitialSteps = Integer.MIN_VALUE;
   mSensorInfo = null;
   // Sensors.
   unregisterSensors();
   if (mListener != null) {
     mListener.onSensorStop();
   }
 }
 @Override
 public void onSensorChanged(@NonNull SensorEvent event) {
   if (mSensorInfo == null) {
     return;
   }
   switch (event.sensor.getType()) {
     case Sensor.TYPE_STEP_COUNTER:
       final long totalSteps = (long) event.values[0];
       if (mSessionInitialSteps == Integer.MIN_VALUE) {
         mSessionInitialSteps = totalSteps;
         Preferences.storeSensorInitialStepCount(this, mSessionInitialSteps);
       }
       mSensorInfo.setSteps(totalSteps - mSessionInitialSteps);
       Logger.d(this, "Step count: " + mSensorInfo.getSteps());
       break;
     case Sensor.TYPE_LINEAR_ACCELERATION:
       final float x = event.values[0];
       final float y = event.values[1];
       final float z = event.values[2];
       //noinspection SuspiciousNameCombination
       final double totalAcc = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2) + Math.pow(z, 2));
       float filteredAcc = filterAcceleration((float) totalAcc);
       SensorInfo.ActivityType activityType = SensorInfo.ActivityType.STILL;
       if (filteredAcc < WALKING_THRESHOLD) {
         Logger.d(this, "Still: " + filteredAcc);
         activityType = SensorInfo.ActivityType.STILL;
       } else if (filteredAcc > WALKING_THRESHOLD && filteredAcc < RUNNING_THRESHOLD) {
         Logger.d(this, "Walking: " + filteredAcc);
         activityType = SensorInfo.ActivityType.WALKING;
       } else if (filteredAcc > RUNNING_THRESHOLD) {
         Logger.d(this, "Running: " + filteredAcc);
         activityType = SensorInfo.ActivityType.RUNNING;
       }
       if (!activityType.equals(mSensorInfo.getActivityType())) {
         mSensorInfo.setActivityType(activityType);
       }
       break;
     default:
   }
   if (mListener != null) {
     mListener.onSensorUpdate(mSensorInfo);
   }
 }