SlideShare ist ein Scribd-Unternehmen logo
1 von 12
1

センサー類を使ったアプ
リ
深水 拓郎 @uzuki_aoba
2

Coronaにおけるセンサー
使えるセンサー
 heading (方位)
 location (位置)
 accelerometer (加速度)
 gyroscope (ジャイロ)

使い方
 使用可能か調べる:system.hasEventSource()
 値を取得したときのリスナーを登録する:
Runtime:addEventListener()
 リスナーで値を使う(保存、表示、etc…)
3

コード例

 system.hasEventSource(“heading”)でコンパスが使えるか確認
する
 使えるならRuntime:addEventListener(“heading”, リスナー関数)
で、方位を取得した場合の処理を登録する
 これは方位が変化する度に呼び出される

 使えない場合の処理も必要です。(例では使えない旨を表記)
4

build.settingsで許可
 androidでGPSを使うにはパーミッション(許可)設定が必要
12/02/24  プロジェクトのフォルダにあるbuild.settingsに記述する
http://developer.anscamobile.com/content/configuring-projects#Application_Permissions_Android

•
•

build.settingsについて:
• http://developer.anscamobile.com/content/configuring-projects
Androidのパーミッション設定の項目について:
• http://developer.android.com/reference/android/Manifest.permission.html
5

「シュベーレ・グスタフごっ
こ。」

 ナショジオのミリタリーアワー見ながら何造るか考えてたらこんな
ことになりました。
 ナチス・ドイツが誇るトンデモ兵器である80cm列車砲“シューベー
レ・グスタフ(Schwerer Gustav)”をシュミレートします。
 方角と発射角度をセンサーで決定して、飛距離と着弾地点を算出し
ます。
 兵器の威力と恐ろしさを伝えます。
6

特長
 センサーを使いました
 使ったセンサー
 heading
 location
 accelerometer (所持してるAndroid端末がgyroscope非搭載だったの
で)

 使い方はAnscaのテンプレートやAPIレファレンスの例とほぼ同
じです。

 マップを表示します
 Androidはネイティブのマップが呼び出せません(多様性がある
ため)
 native.showWebPopupでhtmlファイルを表示し、html側で
JavaScriptを使ってGoogle Mapを呼び出しています。
 GETメソッドで値は渡しています。
 CDNで他所にあるスクリプトを読み込んで使うのもOKです。
7

デモ
 HTC EVOでデモします
8

感想
 センサー類の実装はネイティブの開発環境よりシンプル
 何も考えなくてもだいたいは動く
 そして、だいたいはAnscaのサンプル書き換えでOK

 マップが呼べない等端末差異やサポートしてない機能も有る
けれど、native.showWebPopup()でJavaScriptに仕事させれ
ば何とかなる
 センサー類は実機でないと試せないので、デバッグが少し面
倒
 appMobi XDKみたいに本体傾きや位置のエミュレートが出来る
とうれしい…

 locationイベントの発生が遅いのはなんでだろう・・・
 50秒くらいかかる
9

感想(2)
 Android端末の間でもセンサーのズレがありますね。個体差
かしら。
 もともと精度は期待できないので仕方ないけど。
10

付録: native.showWebPopup()を
使ったmap表示
 htmlを経由することで、Androidでも
iOSでも共通の実装でmapを表示でき
ます。
 Google Static Map APIを表示していま
すが、ちゃんと組めば動かせるMapも
出せると思います(未検証
 表示用のHTMLはプロジェクトフォル
ダにつっこんでます。
 jQueryが使えるので、だいたいの事は
できます。
←グスタフごっこでは着弾地点の表示に使ってます
11

やり方:Corona側
 Anscaが公開してるnative.showWebPopupの利用例とほぼ同じ。
 Map表示用に準備したHTMLファイルをWebPopupで開く。
 表示したいマーカーの座標と、スクリーンサイズをGETメソッドで渡
しています。
 下が該当部分です(urlRequestListener等は省略してますが、Anscaの
サンプル通りでOK)
12

やり方: HTML側
 metaタグをちゃんと指定する。
 スマートフォン用のviewpointの設定で良いです

 map表示用のエレメント(Static Mapの場合img)と、ローディン
グ中の代替表示用のエレメント、閉じるボタン用のエレメント
を準備する
 Corona側で拾うために、閉じるボタンはformとsubmitで作ります。

 jQueryを読み込む
 他のライブラリでも良いですし、ネイティブ実装でも良いです

 JavaScriptでHTMLのロード時の処理を書く
 GETメソッドでパラメータを取得する
 map表示用のエレメントのサイズを、Corona側から渡した画面サイ
ズを基に調節する
 Google Static Map APIに投げるリクエストURLを組み立てて、map
表示用のimgエレメントのsrc属性に入れる
 画像のロード完了時にローディング表示を消してmapを表示する

Weitere ähnliche Inhalte

Ähnlich wie センサー類を使ったアプリ

ActiveResourceが面白すぎる件
ActiveResourceが面白すぎる件ActiveResourceが面白すぎる件
ActiveResourceが面白すぎる件Kazuki MATSUMOTO
 
Node.jsv0.8からv4.xへのバージョンアップ ~大規模Push通知基盤の運用事例~
Node.jsv0.8からv4.xへのバージョンアップ ~大規模Push通知基盤の運用事例~Node.jsv0.8からv4.xへのバージョンアップ ~大規模Push通知基盤の運用事例~
Node.jsv0.8からv4.xへのバージョンアップ ~大規模Push通知基盤の運用事例~Recruit Technologies
 
RDS(MySQL)の利用と注意点
RDS(MySQL)の利用と注意点RDS(MySQL)の利用と注意点
RDS(MySQL)の利用と注意点Hiroyasu Suzuki
 
スマートニュースの世界展開を支えるログ解析基盤
スマートニュースの世界展開を支えるログ解析基盤スマートニュースの世界展開を支えるログ解析基盤
スマートニュースの世界展開を支えるログ解析基盤Takumi Sakamoto
 
Node-v0.12の新機能について
Node-v0.12の新機能についてNode-v0.12の新機能について
Node-v0.12の新機能についてshigeki_ohtsu
 
エキ Py 読書会02 2010/9/7
エキ Py 読書会02 2010/9/7エキ Py 読書会02 2010/9/7
エキ Py 読書会02 2010/9/7Tetsuya Morimoto
 
今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 TipsTakaaki Suzuki
 
海外ゲーム技術勉強会#1 OGRE3D
海外ゲーム技術勉強会#1 OGRE3D海外ゲーム技術勉強会#1 OGRE3D
海外ゲーム技術勉強会#1 OGRE3DKazuhisa Minato
 

Ähnlich wie センサー類を使ったアプリ (11)

ActiveResourceが面白すぎる件
ActiveResourceが面白すぎる件ActiveResourceが面白すぎる件
ActiveResourceが面白すぎる件
 
Node.jsv0.8からv4.xへのバージョンアップ ~大規模Push通知基盤の運用事例~
Node.jsv0.8からv4.xへのバージョンアップ ~大規模Push通知基盤の運用事例~Node.jsv0.8からv4.xへのバージョンアップ ~大規模Push通知基盤の運用事例~
Node.jsv0.8からv4.xへのバージョンアップ ~大規模Push通知基盤の運用事例~
 
RDS(MySQL)の利用と注意点
RDS(MySQL)の利用と注意点RDS(MySQL)の利用と注意点
RDS(MySQL)の利用と注意点
 
スマートニュースの世界展開を支えるログ解析基盤
スマートニュースの世界展開を支えるログ解析基盤スマートニュースの世界展開を支えるログ解析基盤
スマートニュースの世界展開を支えるログ解析基盤
 
Node-v0.12の新機能について
Node-v0.12の新機能についてNode-v0.12の新機能について
Node-v0.12の新機能について
 
Apache geode at-s1p
Apache geode at-s1pApache geode at-s1p
Apache geode at-s1p
 
Das 2015
Das 2015Das 2015
Das 2015
 
エキ Py 読書会02 2010/9/7
エキ Py 読書会02 2010/9/7エキ Py 読書会02 2010/9/7
エキ Py 読書会02 2010/9/7
 
今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips
 
海外ゲーム技術勉強会#1 OGRE3D
海外ゲーム技術勉強会#1 OGRE3D海外ゲーム技術勉強会#1 OGRE3D
海外ゲーム技術勉強会#1 OGRE3D
 
Effective Java 輪読会 項目66-68
Effective Java 輪読会 項目66-68Effective Java 輪読会 項目66-68
Effective Java 輪読会 項目66-68
 

センサー類を使ったアプリ