Zune HDのためのAPI拡張 / XNA Game Studio 3.1 Zune Extensions

 Zune HDが米国で発売されたことに合わせて、XNA Game Studio 3.1用のZune HDのタッチパネルと加速度センサーを扱えるようAPI拡張が登場しました。

  • Zune HDメディアプレイヤーを対象にして開発できる
  • Zune HD用にXNA Frameworkへ新たにタッチAPIの追加
    • TouchPanelクラス
  • Zune HD用にXNA Frameworkへ新たに加速度センサーAPIの追加
    • Accelerometerクラス

 少なくとも今回は、Zune HDの3D機能への対応の追加はないようです。

TouchPanelクラス

 タッチパネルのマルチタッチ(8つまで)の「位置」「圧力」「状態」が取得できます。

(例1)APIの概要
TouchCollection touches = TouchPanel.GetState();
TouchLocation touch0 = touches[0]; // 1つめのタッチがあると仮定して
Vector2 position = touch0.Position; // 画面座標系での位置
float pressure = touch0.Pressure; // 圧力[g]
TouchLocationState state = touch0.State; // 状態
TouchLocation previousLocation;
if (touch0.TryGetPreviousLocation(out previousLocation)) { // 前回のTouchLocationの取得を試みる
    // 取得できた
}
(例2)タッチの状態で処理する
TouchCollection touches = TouchPanel.GetState();
foreach (TouchLocation location in touches) {
    switch (location.State) {
        case TouchLocationState.Pressed:
            break;
        case TouchLocationState.Moved:
            break;
        case TouchLocationState.Released:
            break;
    }
}

Accelerometerクラス

座標系
方向
+X バイスの右方
+Y バイスの上方
+Z バイスの前方
AccelerometerState state = Accelerometer.GetState();
Vector3 accelaration = state.Acceleration; // 重力加速度[g]