2012/07/25(水) [n年前の日記]
#1 [haxe] Haxe + NMEをまだ実験中
とりあえず、Android実機、Lenovo IdeaPad A1 で動かせるか試していたり。実機をUSBケーブルで接続して、adb install -r hoge_debug.apk と打てばインストールはできる。-r は、reinstall の r。
一応動いたのだけど、600x1024の画面サイズの端末に、320x480で設計したソレを表示しているから、画面の左上に小さく表示されている状態で。画面一杯に表示したいのだが…。
方法その1。ソース中で、
方法その2。ステージに Sprite を addChild() して、描画したいものは全てそのSpriteに addChild()。その、全てを司る Sprite を、画面サイズに拡大縮小する。画面の縦横幅は、Lib.current.stage.stageWidth , Lib.current.stage.stageHeight で取得できる。
一応このようにして、画面一杯に表示できなくはない。けど。どちらも遅い…。60FPSを指定しているはずなのだけど、どう見ても処理落ちして、動きがガクガクしてる。10〜20FPSぐらいを前提にして作らないと描画が間に合わない予感。大昔のガラケー並みに酷い。 *1
Lib.current.stage.quality = StageQuality.LOW; 等を指定して、画質を落として処理速度を稼げないかと期待したけれど。試してみても効果は無く。
一応動いたのだけど、600x1024の画面サイズの端末に、320x480で設計したソレを表示しているから、画面の左上に小さく表示されている状態で。画面一杯に表示したいのだが…。
方法その1。ソース中で、
var stage = Lib.current.stage; stage.scaleMode = nme.display.StageScaleMode.EXACT_FIT; stage.align = nme.display.StageAlign.TOP_LEFT; stage.displayState = StageDisplayState.FULL_SCREEN;等を指定する。
- scaleMode は ActionScript3 と同様、ステージを引き延ばして表示するかどうかの指定。
- displayState は、通常表示かフルスクリーン表示を指定、するのだと思う。
方法その2。ステージに Sprite を addChild() して、描画したいものは全てそのSpriteに addChild()。その、全てを司る Sprite を、画面サイズに拡大縮小する。画面の縦横幅は、Lib.current.stage.stageWidth , Lib.current.stage.stageHeight で取得できる。
一応このようにして、画面一杯に表示できなくはない。けど。どちらも遅い…。60FPSを指定しているはずなのだけど、どう見ても処理落ちして、動きがガクガクしてる。10〜20FPSぐらいを前提にして作らないと描画が間に合わない予感。大昔のガラケー並みに酷い。 *1
Lib.current.stage.quality = StageQuality.LOW; 等を指定して、画質を落として処理速度を稼げないかと期待したけれど。試してみても効果は無く。
*1: もっとも、昔のガラケーは 600x1024 よりはるかに小さい画面サイズだったので、それに比べれば、機器のスペックは明らかに向上しているのだろうけど。
[ ツッコむ ]
#2 [flash] Flashはまだゲームパッドに対応してなかったのか
Flash 11 はゲームコントローラもサポートする、という話があったことを今頃知って、少し検索してみたのだけど。どうも、AIR TV なる環境でしか使えないらしく。
となると、ブラウザ上で動作して、かつ、ジョイスティック・ゲームパッドを使えるゲームを作りたいとなると、Unity一択ということになるのかな…。
ローカル上で動作させること前提なら、DirectX や SDL を使ったLL用のライブラリも、そのあたり対応してくれていることが多いので、どうにかなりそうだけど。DXRuby、Ruby/SDL、PyGame は対応していた記憶があるし。LLではないけど、HSPも機能追加でできたような記憶も。でも、ブラウザ上でページを開くとすぐにプレイできる、という手軽さと比べてしまうと…。DLして、解凍して、実行する、というのは…。
やっぱり、ゲーム作りたいならUnity、なのかなあ…。
ゲームコントローラー API(AIR TV) ? 開発者は、ゲームパッドやコントローラーなど、接続されているゲーム入力デバイスと通信できるテレビアプリケーションを構築できます。注意:この機能は、デスクトップやモバイル用の AIR ではまだ使用できません。「この機能は、デスクトップやモバイル用の AIR ではまだ使用できません。」とな。ショボン。
となると、ブラウザ上で動作して、かつ、ジョイスティック・ゲームパッドを使えるゲームを作りたいとなると、Unity一択ということになるのかな…。
ローカル上で動作させること前提なら、DirectX や SDL を使ったLL用のライブラリも、そのあたり対応してくれていることが多いので、どうにかなりそうだけど。DXRuby、Ruby/SDL、PyGame は対応していた記憶があるし。LLではないけど、HSPも機能追加でできたような記憶も。でも、ブラウザ上でページを開くとすぐにプレイできる、という手軽さと比べてしまうと…。DLして、解凍して、実行する、というのは…。
やっぱり、ゲーム作りたいならUnity、なのかなあ…。
◎ 条件付きでゲームパッドに対応できなくもないらしい。 :
_JoyServer - Flash 上でジョイスティックを操作するためのソフト
_Flashでジョイスティックを使う実験 - GEOQUAKE Backstage
前者は、Windows上でジョイスティックを読み取るサーバを動かして、後者は、Unityのプラグインに読み取らせて、Flashでやり取りする仕組み。らしい。
できなくはない。が、利用者側にとってはハードルが高いよなあ…。リンク先でもそのあたり言及されてるけど。利用者側がそこまでするか? と考えると…。
Flashが対応してくれれば話は早いのだろうけど。
_Flashでジョイスティックを使う実験 - GEOQUAKE Backstage
前者は、Windows上でジョイスティックを読み取るサーバを動かして、後者は、Unityのプラグインに読み取らせて、Flashでやり取りする仕組み。らしい。
できなくはない。が、利用者側にとってはハードルが高いよなあ…。リンク先でもそのあたり言及されてるけど。利用者側がそこまでするか? と考えると…。
Flashが対応してくれれば話は早いのだろうけど。
[ ツッコむ ]
以上、1 日分です。