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); } }