http://uzukiaoba.blog.shinobi.jp/coronasdk/corona%20remote%E8%A9%A6%E3%81%97%E3%81%A6%E3%81%BF%E3%81%9F%E3%80%82Corona Remote試してみた。
こんばんは。ウズキです。
4月から慣れない社会人などやっております。
世間の風邪は厳しいですね。1週間以上風邪です。咳続きすぎわろた。
さて、手元のマシンがWinだけになってからすっかりご無沙汰していたCoronaSDKのコードを触りました。
というのも、Corona Remoteというアプリをみつけまして、それの試用です。
http://www.coronaremote.com/
公式見てもらえばわかりますが:
・CoronaSDKでの開発を助けるよ。
・iPhoneにインストールしたアプリから、加速度センサとコンパスの値をPC上のCoronaシュミレータに送るよ。
・自分のソースにライブラリと数行追加するだけで、PCのシュミレータ上でも実機みたいにリアルな数値でセンサーを使ったコードのテストができるよ。
・シュミレータはMac/Winどっちでもいけるよ。
って感じです。
アプリが$9.99なので人によっては高いと感じるかもしれませんが、
センサーを使ったアプリを作ったことがある人なら安いと感じるはずです。
どうせLuaならソケット書けるんだから自分で作るわという人は、どうかGPSも拾えるやつを作ってくれ。
で、ざっくりと使い方。
0. iPhoneと開発用PCを同じローカルネットワークに接続
1. AppStore でCorona Remoteを購入& iPhoneにインストール
2. 公式からremote.luaをゲットする
上記公式サイトから"Corona Remote.zip"をダウンロードする。
zipを解凍。"Corona Remote"フォルダ内にある "remote.lua" ファイルをゲットだぜ。
3. 自分のプロジェクトフォルダに "remote.lua" をコピーして入れる。
4. 自分のソースの必要なところで使う。
ここらへんも公式そのままでおk。
基本的には:
・local remote = require("remote") --ライブラリを読み込み&オブジェクト化
・remote.startServer( "8080" ) --iPhoneのCorona Remoteと通信するポートを設定
・remote.startCompass() --通信の待ち受け開始(サーバ起動)
で準備OK。あとはenterFrameイベントあたりでremoteオブジェクトからxGravityやらmagneticやらの値を貰ようにコード書く。
5. 開発マシンのIPアドレスを確認
DHCPならcmdでipconfigすればいいとおもうよ。
6. Coronaシュミレータで自分のプロジェクトを走らせる。
7. iPhoneでCorona Remoteを実行&設定
IPの欄をタッチして開発マシンのIPアドレスを指定
変更してたら同様にポート番号も指定
CONNECTをタッチして開始
8. れっつ えんじょい はっぴー でばっきんぐ :-)
こんな感じですかね。
実に単純。ようは開発用マシンのシュミレータでLuaによりサーバ立てて、それにCorona RemoteからTCPで値送ってる。
さすがLuaたん。
で、さっそく自分のアプリで試してみました。
試したのは
前回のCoronaSDK勉強会のLT用に作ったGustav spielen
サンプルにそってやれば特に問題無いけど、組み込むにあたって僕は次の点に注意しました。
1. シュミレータの場合と実機の場合は自動で切り分ける
system.getInfo("environment")でsimulatorかどうか確認する。
simulatorなら、enterFrameイベントリスナにCorona Remoteから値を取るイベントを登録する。
実機なら、通常通り各センサーを監視するイベントを、センサーのイベントリスナに登録する。
2. Corona Remoteから値をもらったら、eventオブジェクトを偽装して本来のセンサーイベントを呼ぶ
Corona Remoteから値をもらうenterFrameイベント内で、実機の各センサーイベントが返すeventオブジェクトを擬似的に作る。
作ったeventオブジェクトにCorona Remoteの値を載せて、それを引数にして通常のセンサー用イベントを呼ぶ。
まぁ、だれでも思いつきそうな小細工ですが、これだけで切り替えが自動になります。らくちんらくちん。
実際にGustav spielen使って動作してる様子はこちら:
これでGPSもシュミレートできればなぁ。
PR