Android端末による傾きや振動のセンサー。
当然スマートフォンの操作の一つなので、アプリにも使える。
では、AIR for Androidでは使うことが出来るのか。
結論から言えば、出来る。まあ、当然なんだけどね。
初めは、いい検索ワードが思いつかなくてGoogle先生に聞いても的確な答えが返ってこなくて結構苦労したけど、「加速度センサー」をキーワードに入れることで、見事にGoogle先生がスマッシュヒット。
参考にしたのはこちらのサイト
→ http://cuaoar.jp/2010/07/
Accelerometerクラス
これが加速度センサーを制御するクラス。
使い方は、
var accl:Accelerometer;
if(Accelerometer.isSupported){
accl = new Accelerometer();
accl.addEventListener(AccelerometerEvent.UPDATE, acclUpdate);
}else{
messTxt.text = "noSupported";
}
function acclUpdate(ae:AccelerometerEvent):void{
messTxt.text = "Supported"
+ "\n" + "acceleration X: " + "\n" + ae.accelerationX.toString()
+ "\n" + "acceleration Y: " + "\n" + ae.accelerationY.toString()
+ "\n" + "acceleration Z: " + "\n" + ae.accelerationZ.toString();*/
}
加速度センサーは、完全にデバイス依存なので、このセンサーがサポートされているかのチェックが必要。
それは、isSupported でチェック。
そして、サポートされていれば、AccelerometerEvent.UPDATE イベントリスナーを発行する。
AccelerometerEvent.UPDATEはセンサーの更新情報があるごとに動くので、これで傾きをキャッチできる。
ちなみに、傾きはX軸が accelerationX Y軸が accelerationY Z軸が accelerationZ で取得でき、
それぞれ-1~1の数値となる。
傾きの向きによる数値の変化は……言葉で説明するのは難しいので、実際に実機で試してみて数値変化を見るのが一番!(ぉ
これで、この数値を使って座標の取得してやれば、デバイスの傾きによって動くMCが完成。
実際に10行に満たないスクリプトで加速度センサーを使うことが出来るって言うのは本当に驚いた。
こんなに簡単にAndroidデバイスで動くものが作れていいのかな?と思うくらい。
ある程度理解できたところで、とりあえずこんなものを作ってみた。
キャラクターの絵の上を加速度センサーによる傾きで動くスコープが移動し、スコープが重なった部分の服が透けて見えるという、まあ、よくあるネタなんだけど。
あとは、enemyをマスクで隠しておき、ターゲットスコープを動かして見つけ出した後ロックオン、enemyをタップすることで撃破! というものも試してみた。
ともあれ、加速度センサーが使えるようになって、Androidデバイスらしいアプリを作る第一歩をやっと踏み出せた気がする。
これからは、さらにアイディアをねって「Androidらしいもの」ができるようにしよう!
もし興味がありましたら、フォロー、チェックをお願いします。
Twitter → http://twitter.com/makotok1
Pixiv → http://www.pixiv.net/member.php?id=500620
当然スマートフォンの操作の一つなので、アプリにも使える。
では、AIR for Androidでは使うことが出来るのか。
結論から言えば、出来る。まあ、当然なんだけどね。
初めは、いい検索ワードが思いつかなくてGoogle先生に聞いても的確な答えが返ってこなくて結構苦労したけど、「加速度センサー」をキーワードに入れることで、見事にGoogle先生がスマッシュヒット。
参考にしたのはこちらのサイト
→ http://cuaoar.jp/2010/07/
Accelerometerクラス
これが加速度センサーを制御するクラス。
使い方は、
var accl:Accelerometer;
if(Accelerometer.isSupported){
accl = new Accelerometer();
accl.addEventListener(AccelerometerEvent.UPDATE, acclUpdate);
}else{
messTxt.text = "noSupported";
}
function acclUpdate(ae:AccelerometerEvent):void{
messTxt.text = "Supported"
+ "\n" + "acceleration X: " + "\n" + ae.accelerationX.toString()
+ "\n" + "acceleration Y: " + "\n" + ae.accelerationY.toString()
+ "\n" + "acceleration Z: " + "\n" + ae.accelerationZ.toString();*/
}
加速度センサーは、完全にデバイス依存なので、このセンサーがサポートされているかのチェックが必要。
それは、isSupported でチェック。
そして、サポートされていれば、AccelerometerEvent.UPDATE イベントリスナーを発行する。
AccelerometerEvent.UPDATEはセンサーの更新情報があるごとに動くので、これで傾きをキャッチできる。
ちなみに、傾きはX軸が accelerationX Y軸が accelerationY Z軸が accelerationZ で取得でき、
それぞれ-1~1の数値となる。
傾きの向きによる数値の変化は……言葉で説明するのは難しいので、実際に実機で試してみて数値変化を見るのが一番!(ぉ
これで、この数値を使って座標の取得してやれば、デバイスの傾きによって動くMCが完成。
実際に10行に満たないスクリプトで加速度センサーを使うことが出来るって言うのは本当に驚いた。
こんなに簡単にAndroidデバイスで動くものが作れていいのかな?と思うくらい。
ある程度理解できたところで、とりあえずこんなものを作ってみた。
![AndroidアプリをFlashで作る!](https://stat.ameba.jp/user_images/20100906/00/makotok1/f1/d5/j/t02200367_0480080010732890672.jpg?caw=800)
![AndroidアプリをFlashで作る!](https://stat.ameba.jp/user_images/20100906/00/makotok1/40/8b/j/t02200367_0480080010732890670.jpg?caw=800)
キャラクターの絵の上を加速度センサーによる傾きで動くスコープが移動し、スコープが重なった部分の服が透けて見えるという、まあ、よくあるネタなんだけど。
あとは、enemyをマスクで隠しておき、ターゲットスコープを動かして見つけ出した後ロックオン、enemyをタップすることで撃破! というものも試してみた。
ともあれ、加速度センサーが使えるようになって、Androidデバイスらしいアプリを作る第一歩をやっと踏み出せた気がする。
これからは、さらにアイディアをねって「Androidらしいもの」ができるようにしよう!
もし興味がありましたら、フォロー、チェックをお願いします。
Twitter → http://twitter.com/makotok1
Pixiv → http://www.pixiv.net/member.php?id=500620