センサーの値を取得する方法についてはこちらの書籍を大いに参考にしました。
03.センサー|Flutter実践入門 (zenn.dev)
まずはセンサーを取り扱うパッケージを導入します。
pubspec.yamlのdependencies以下にsensors_plusを追加します。
dependencies:
flutter:
sdk: flutter
sensors_plus: ^2.0.2 # 20230326時点で最新 バージョンは適宜新しいものにする
dartのソースコードで値を取得する部分は以下のようにします。
import 'package:sensors_plus/sensors_plus.dart';
中略
// ジャイロセンサーの値を取得するリスナーを登録
gyroscopeEvents.listen(
(GyroscopeEvent event) {
event.x // x軸の値
event.y // y軸の値
event.z // z軸の値
}
);
つちのこあつめのアプリではx軸とy軸の値のみを使用しています。
傾きと値の変化は以下のように対応しています。
奥に傾ける:event.xの値が減少
手前に傾ける:event.xの値が増加
右に傾ける:event.yの値が増加
左に傾ける:event.yの値が減少
ジャイロセンサーは端末によってイベントが発生する間隔や取得する値に差があるようですので、この差を補正できない限りは公平性が必要なゲームに使用するべきではないと感じました。
次回以降はこの値を使って画像を動かす方法を紹介したいと思います!