coronasdkのご紹介
DESCRIPTION
2012/04/07のプロ生@品川の時のLTスライドです。TRANSCRIPT
CoronaSDK のご紹介
ビールじゃないよ?
04/13/2023 1
軽く自己紹介
日本コロナの会 元・熊本支部長 春から神奈川で新社会人 大学時代は Python やら JavaScript で書いて GAE で動かしたりして
ました バイトでネット販売の支援アプリを書いてました
うずきあおば ( @uzuki_aoba )
04/13/2023 2
物理エンジンを使う例
04/13/2023 3
物理エンジンを使う例
地面 ( 画像 ) を表示し、物が当たった時の
跳ね返り具合を設定
箱 ( 画像 ) を表示し、上空にセット
箱を落とす!
04/13/2023 4
CoronaSDK の特徴
Lua 言語 2D ゲーム得意
OpenGL ( ネイティブ , 60fps くらい OpenAL Box2D
マルチプラットフォーム サーバサイドでビルド 海外では商用アプリも実績あり
が開発しているマルチプラットフォーム SDK 。 Adobe Flash に似た構造のグラフィックフレームワークを持っています。
04/13/2023 5
映画のプロモーションにも!Dolphin Tale: Fling a Fish
04/13/2023 6
CoronaSDK の特徴Flasher とかデザイン系の人にやさしい?
Photoshop や Flash 用のプラグインやツール豊富なドキュメント
Ansca 社の公式ドキュメント ( 英語 ) API レファレンス , サンプルコード集 , コードの共有スペース
日本語の本も出ました! 「基礎から学ぶ CoronaSDK 」 2012/2/25
無料で始められる! マーケットに出すならライセンス買ってね
04/13/2023 7
Robert Nay 14 歳 Corona で作ったゲームが1ヶ月で 700 万 DL 開発期間は 1.5 ヶ月 4,000 行
04/13/2023 8
「シュベーレ・グスタフごっこ。」 位置、方角、発射角度を取得。着弾地点を算出して地図で表
示
04/13/2023 9
使ってみた実感Ansca の開発スピードが早くて嬉しい
週一くらいのペースでバグ潰しやら機能拡張やらをしてくれる
シュミレータが早い。軽い コードを上書き保存するとすぐに反映される 反復的な開発、 Try&Error でガンガンいこうぜ
画像さえ準備すれば、かなりいい感じ 絵を使って簡単に、綺麗に魅せるのが得意
04/13/2023 10
ご静聴ありがとうございました!
04/13/2023 11
Ansca のプロモーションビデオ http://www.youtube.com/watch?v=WMZ7R92glQ4
04/13/2023 12
サーバサイドでビルド
AnscaYour Code
iPhone App
iPad App
Android App
04/13/2023 13
マルチプラットフォーム
04/13/2023 14
無料からはじめられる 無料でも有料ライセンスとほぼ同じことが出来る! 無料ではできないこと
App Store や Google Play への登録(が可能なバイナリの作成) 最新機能の使用 ビルドスピードが若干遅い
有料ライセンス iOS Only $199/year
+ Apple 社の iOS の開発者登録料 Android Only $199/year All Platforms $349/year http://www.anscamobile.com/pricing/
04/13/2023 15
Corona Daily Builds Summary
04/13/2023 16
http://developer.anscamobile.com/content/corona-daily-builds/summary
Kwik Photoshop のプラグイン コードを操作することなく、デジ
タルブック等のアプリが作れる短期間で見た目がいいものが作れ
るので、受けがいい
https://docs.google.com/viewer?a=v&pid=sites&srcid=ZGVmYXVsdGRvbWFpbnxjb3JvbmFvcGVuc3JjMnxneDoyYWJhZDIzNTljMmFhZDcw
04/13/2023 17
SpriteLoq Flash で作ったキャラクターを書きだす(画像 + コード) アニメーションをフレームごとに切って、スプライトシート
を作る シーン分けもちゃんと把握してくれる
04/13/2023 18
Gumbo Web アプリ GUI で設計して、コードを吐き出す http://www.nerderer.com/Gumbo/
04/13/2023 19
教育分野でも使われはじめてる!熊本
昨年度ゼミで試しに導入してみたところ他ゼミにも好評で、情報コースのいくつかで本格導入することに!
04/13/2023 20
Corona におけるセンサー使えるセンサー
heading ( 方位 ) location ( 位置 ) accelerometer (加速度 ) gyroscope ( ジャイロ )
使い方 使用可能か調べる: system.hasEventSource() 値を取得したときのリスナーを登録する:Runtime:addEventListener() リスナーで値を使う(保存、表示、 etc… )
04/13/2023 21
コード例
system.hasEventSource(“heading”) でコンパスが使えるか確認する 使えるなら Runtime:addEventListener(“heading”, リスナー関数 ) で、方
位を取得した場合の処理を登録する これは方位が変化する度に呼び出される
使えない場合の処理も必要です。(例では使えない旨を表記)
04/13/2023 22
build.settings で許可 android で GPS を使うにはパーミッション(許可)設定が必要 プロジェクトのフォルダにある build.settings に記述する
• build.settings について:• http://developer.anscamobile.com/content/configuring-projects
• Android のパーミッション設定の項目について:• http://developer.android.com/reference/android/Manifest.permission.html
04/13/2023 23
「シュベーレ・グスタフごっこ。」
ナショジオのミリタリーアワー見ながら何造るか考えてたらこんなことになりました。
ナチス・ドイツが誇るトンデモ兵器である 80cm列車砲“シューベーレ・グスタフ( Schwerer Gustav )”をシュミレートします。
方角と発射角度をセンサーで決定して、飛距離と着弾地点を算出します。 兵器の威力と恐ろしさを伝えます。
04/13/2023 24
特長 センサーを使いました
使ったセンサー heading location accelerometer (所持してる Android端末が gyroscope非搭載だったので )
使い方は Ansca のテンプレートや API レファレンスの例とほぼ同じです。 マップを表示します
Android はネイティブのマップが呼び出せません(多様性があるため) native.showWebPopup で html ファイルを表示し、 html側で JavaScript を使っ
て Google Map を呼び出しています。 GET メソッドで値は渡しています。 CDN で他所にあるスクリプトを読み込んで使うのも OK です。
Google にホスティングされている jQuery を使っています。
04/13/2023 25
デモ HTC EVO でデモします
04/13/2023 26
感想 センサー類の実装はネイティブの開発環境よりシンプル 何も考えなくてもだいたいは動く
そして、だいたいは Ansca のサンプル書き換えで OK マップが呼べない等端末差異やサポートしてない機能も有るけれど、 native.showWebPopup() で JavaScript に仕事させれば何とかなる
センサー類は実機でないと試せないので、デバッグが少し面倒 appMobi XDK みたいに本体傾きや位置のエミュレートが出来るとうれ
しい… location イベントの発生が遅いのはなんでだろう・・・
50秒くらいかかる
04/13/2023 27
感想 (2) Android端末の間でもセンサーのズレがありますね。個体差かしら。 もともと精度は期待できないので仕方ないけど。
04/13/2023 28
付録 : native.showWebPopup() を使った map 表示
html を経由することで、 Android でも iOSでも共通の実装で map を表示できます。
Google Static Map API を表示していますが、ちゃんと組めば動かせる Map も出せると思います (未検証
表示用の HTML はプロジェクトフォルダにつっこんでます。
jQuery が使えるので、だいたいの事はできます。
04/13/2023 29
←グスタフごっこでは着弾地点の表示に使ってます
やり方:Corona側 Ansca が公開してる native.showWebPopup の利用例とほぼ同じ。 Map 表示用に準備した HTML ファイルを WebPopup で開く。 表示したいマーカーの座標と、スクリーンサイズを GET メソッドで渡しています。 下が該当部分です( urlRequestListener 等は省略してますが、 Ansca のサンプル通りで
OK )
04/13/2023 30
やり方 : 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 を表示する
04/13/2023 31