Project.xmlの書き方
Project.xmlについて
アセットの指定方法
サウンドファイルの扱い
環境によって、mp3しか再生できない、またはoggしか再生できない環境があります。その場合以下のように記述します。
<!-- Flash環境は mp3 のみ再生可能 --> <assets path="assets/sounds" if="flash" exclude="ogg"> <sound path="enemyhit.mp3" id="enemyhit" /> <sound path="enemykill.mp3" id="enemykill" /> <sound path="gameover.mp3" id="gameover" /> </assets> <!-- それ以外は ogg のみ再生可能 --> <assets path="assets/sounds" unless="flash"> <sound path="enemyhit.ogg" id="enemyhit" /> <sound path="enemykill.ogg" id="enemykill" /> <sound path="gameover.ogg" id="gameover" /> </assets>
- mp3 : Flash
- ogg : Neko
フォーカスを失ったときに画面を一時停止しない
<!-- フォーカスを失ったときに画面を一時停止しない --> <haxedef name="FLX_NO_FOCUS_LOST_SCREEN" />
flixelの拡張ライブラリを使う
以下のhaxelibに関する設定を追加します。
<haxelib name="flixel"/> <!-- flixel.addons packageを有効にします --> <haxelib name="flixel-addons" /> <!-- flixel.ui packageを有効にします--> <haxelib name="flixel-ui"/>
シンボル定義
シンボルは<haxedef>タグを使うことで定義することができます。
<!-- シンボル"HOGE"を定義 --> <haxedef name="HOGE">
入力インターフェース用のシンボル
環境によって入力インターフェースが異なるので、以下の様なシンボルを用意しておくと便利です
<!-- スマートフォンではマウス無効 --> <haxedef name="FLX_NO_MOUSE" if="mobile" /> <!-- スマートフォンではキーボード無効 --> <haxedef name="FLX_NO_KEYBOARD" if="mobile" /> <!-- デスクトップ環境ではタッチ無効 --> <haxedef name="FLX_NO_TOUCH" if="desktop" />
複数のノードをまとめる
特定のターゲットの設定をまとめて変更したい場合、<section>タグを使うと複数のタグをまとめることができます。
<section if="android"> <!-- Androidのときのみ有効な設定 --> <icon path="36.png" size="36" /> <icon path="48.png" size="48" /> <icon path="72.png" size="72" /> <icon path="96.png" size="96" /> </section>
スマートフォン向けの設定
`<window>`タグの`width`と`height`を0に設定する必要があります。
<!--Mobile-specific--> <window if="mobile" orientation="landscape" fullscreen="true" width="0" height="0" />
縦持ちにしたいならorientationを`portrait`にします。
iOSの設定
metaタグのpackageにProvisioningProfiles?に指定したAPP IDを指定し、iosタグに各種アトリビュートを設定します。
- iOSタグ
- deployment : iOSのバージョン
- binaries : armv6 / armv7 / fat のいずれかを指定
- devices : 対応するデバイス。ipad / iphone / universal のいずれかを指定
- linker-flags : ???。OpenFLのサンプルだと空文字になっています
- prerenderd-icon : ???。OpenFLのfalseになっています
<meta title="Hoge" package="jp.2dgames.test" version="1.0.0" company="Company Name" /> <ios deployment="5" binaries="armv7" devices="iphone" /> <ios linker-flags="" prerendered-icon="false" />
あとiOSに限り、以下の設定もしておくと良いみたいです。ソースはHaxeFlixelの公式ページから。
<window hardware="true" allow-shaders="true" require-shaders="true" if="cpp"/> <window vsync="true" antialiasing="4" if="cpp" />
- ハードウェアによる描画を許可
- シェーダーを有効
- VSyncを有効
- アンチエイリアシングを有効
にしているみたいです。特定端末でやたらと処理落ちするときの対策だと、OpenFLのフォーラムに書いてありました。
Androidの設定
AndroidでビルドするにはPackage名の指定が必要です。 ユニークなPackage名を指定し、それに合わせてモジュールの配置も修正する必要があります
<meta title="Natsuki3" package="jp.seconddgames.natsukiboost3" version="1.0.0" company="2dgames.jp" />
android target-sdk-version でAPIレベルを指定できます。現時点(2014/9/20)、HaxeFlixelはAPI16に対応しているので、通常は16を指定します。
<android target-sdk-version="16" />
iOS版と同様、以下の記述で高速化できるみたいです。
<window hardware="true" allow-shaders="true" require-shaders="true" if="cpp"/> <window vsync="true" antialiasing="4" if="cpp" />
アイコン画像は以下のものを設定します
<icon path="36.png" size="36" if="android" /> <icon path="48.png" size="48" if="android" /> <icon path="72.png" size="72" if="android" /> <icon path="96.png" size="96" if="android" />
AdMobの設定
AdMobの設定方法のページにまとめています。