0

目的は、方向の変化に応じてスムーズに回転する本iPhone 3D Programming hereのような単純な 2D 矢印コンパス アプリケーションを作成することです。

AndroidManifest.xml (向きの変更を購読)

<activity android:name="android.app.NativeActivity"
 android:label="@string/app_name"
 android:configChanges="orientation|keyboardHidden">

AndroidApp.cpp (回転角度取得)

void AndroidApp::handleCmd (int32_t cmd) {
switch (cmd) {
    case APP_CMD_CONFIG_CHANGED:
       // Your code here
    break;
  }
}

RenderingEngine.cpp (シーンのレンダリング時に矢印を回転させる角度を格納)

    void RenderingEngine::OnRotate(DeviceOrientation orientation)
    {
       float angle = 0;

       switch (orientation) {
          case DeviceOrientationLandscapeLeft:
             angle = 270;
             break;

          case DeviceOrientationPortraitUpsideDown:
             angle = 180;
             break;

          case DeviceOrientationLandscapeRight:
             angle = 90;
             break;
       }

       m_desiredAngle = angle;
    }
4

1 に答える 1

0

回転をスムーズにしたい場合は、方向変更イベントの代わりにコンパスを使用する必要があります。

NativeActivityのドキュメントを確認することをお勧めします。加速度計の例があります:

// Prepare to monitor accelerometer
engine.sensorManager = ASensorManager_getInstance();
engine.accelerometerSensor = ASensorManager_getDefaultSensor(engine.sensorManager,
        ASENSOR_TYPE_ACCELEROMETER);
engine.sensorEventQueue = ASensorManager_createEventQueue(engine.sensorManager,
        state->looper, LOOPER_ID_USER, NULL, NULL);

おそらく、<ndk>/docsディレクトリ ( source ) にある Android NDK ドキュメントに詳細情報があります。

于 2012-05-21T18:45:33.093 に答える