コンテストが終わって、「たまねとりっぷ!」を作り続けるモチベが下がったので、別のことをやることにした。
LCDゲーム風アプリを作るのも楽しいけど、スマホで別ジャンルのゲームを作りたいと思うようになったので、スマホのセンサーの情報を扱えるようになろうとテストを開始した。
スマホアプリ「BASIC!」には、スマホの各種情報を取得できる命令が用意されており、センサーの情報も取れたのだが、その当時は何の値が取れているか不明で、使うことを断念していた。
HSPでもスマホの加速度センサーとジャイロセンサーの値が取れるようなので、まずは取得するところから。
ginfo_accelxマクロで、加速度センサーのX軸の情報が取れる。いや、どれがX軸?w
他のandroid系のアプリ作成ページを漁ってみると、どうやら左右方向の軸らしい。上下の奥行方向がY軸、スマホを水平に置いて、筐体の垂直方向の軸がZ軸になる。
んで、それぞれに重力加速度の9.8が掛かっているという仕組みらしい。
ジャイロセンサーも、ginfo命令で値が取れる。加速度センサーと何が違うの?という疑問。こっちは角速度を検知できる。直線的な動きではなく、ぐりぐりと筐体ごと回転する動きを検知したいときに使う。主に、画面の自動回転とか、地図アプリとかで使われる。
とりあえず、どんな値が表示されるか確認するために、簡単なプログラムを作ってみた。
#include "hsp3dish.as" ax=ginfo_accelx ay=ginfo_accely az=ginfo_accelz jx=ginfo(259)*57.2958 jy=ginfo(260)*57.2958 jz=ginfo(261)*57.2958 repeat redraw 0 pos 0,0 color 128,255,255 boxf 0,0,480,800 color 0,0,0 mes "センサーテスト" mes cnt mes "------------" mes ax mes ay mes az mes "------------" mes jx mes jy mes jz redraw 1 await 16 if cnt\5=0 { ax=ginfo_accelx ay=ginfo_accely az=ginfo_accelz jx=ginfo(259)*57.2958 jy=ginfo(260)*57.2958 jz=ginfo(261)*57.2958 } loop
センサーを使ったプログラムは、実機でしか動作確認できないのが地味に面倒ww
apkファイルをビルドして、いつものようにGoogleドライブ経由でスマホにインストールした。
注意点としては、HSP3Dish helperで、プロジェクトを作るときに、センサーを使用するチェックが必要なこと。

逆にセンサーを使わないときはチェックしないでとのこと。電池の消耗が変わるらしい。
年内の投稿はこれまでです。
2024年も、ご愛読いただきましてありがとうございました。
懲りずに2025年もお付き合いいただけますよう、よろしくお願い申し上げます。