Project.xmlの書き方 の変更点
[[トップに戻る>FrontPage]]
* Project.xmlについて [#acd5edfd]
----
#contents
----
** アセットの指定方法 [#u3c18ac6]
*** サウンドファイルの扱い [#sf7020f7]
環境によって、mp3しか再生できない、またはoggしか再生できない環境があります。その場合以下のように記述します。
#geshi(xml){{
<!-- 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
----
** フォーカスを失ったときに画面を一時停止しない [#j57f3c8a]
#geshi(Xml){{
<!-- フォーカスを失ったときに画面を一時停止しない -->
<haxedef name="FLX_NO_FOCUS_LOST_SCREEN" />
}}
** flixelの拡張ライブラリを使う [#n8108f18]
以下のhaxelibに関する設定を追加します。
#geshi(xml){{
<haxelib name="flixel"/>
<!-- flixel.addons packageを有効にします -->
<haxelib name="flixel-addons" />
<!-- flixel.ui packageを有効にします-->
<haxelib name="flixel-ui"/>
}}
----
** シンボル定義 [#zd137784]
シンボルは<haxedef>タグを使うことで定義することができます。
#geshi(xml){{
<!-- シンボル"HOGE"を定義 -->
<haxedef name="HOGE">
}}
*** 入力インターフェース用のシンボル [#o1906625]
環境によって入力インターフェースが異なるので、以下の様なシンボルを用意しておくと便利です
#geshi(xml){{
<!-- スマートフォンではマウス無効 -->
<haxedef name="FLX_NO_MOUSE" if="mobile" />
<!-- スマートフォンではキーボード無効 -->
<haxedef name="FLX_NO_KEYBOARD" if="mobile" />
<!-- デスクトップ環境ではタッチ無効 -->
<haxedef name="FLX_NO_TOUCH" if="desktop" />
}}
----
** 複数のノードをまとめる [#fbafe96e]
特定のターゲットの設定をまとめて変更したい場合、<section>タグを使うと複数のタグをまとめることができます。
#geshi(xml){{
<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>
}}
----
** スマートフォン向けの設定 [#uf20149f]
`<window>`タグの`width`と`height`を0に設定する必要があります。
#geshi(xml){{
<!--Mobile-specific-->
<window if="mobile" orientation="landscape" fullscreen="true" width="0" height="0" />
}}
縦持ちにしたいならorientationを`portrait`にします。
----
** iOSの設定 [#p070c6c2]
metaタグのpackageにProvisioningProfilesに指定したAPP IDを指定し、iosタグに各種アトリビュートを設定します。
- iOSタグ
-- deployment : iOSのバージョン
-- binaries : armv6 / armv7 / fat のいずれかを指定
-- devices : 対応するデバイス。ipad / iphone / universal のいずれかを指定
-- linker-flags : ???。OpenFLのサンプルだと空文字になっています
-- prerenderd-icon : ???。OpenFLのfalseになっています
#geshi(xml){{
<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の公式ページから。
#geshi(xml){{
<window hardware="true" allow-shaders="true" require-shaders="true" if="cpp"/>
<window vsync="true" antialiasing="4" if="cpp" />
}}
- ハードウェアによる描画を許可
- シェーダーを有効
- VSyncを有効
- アンチエイリアシングを有効
にしているみたいです。特定端末でやたらと処理落ちするときの対策だと、OpenFLのフォーラムに書いてありました。
----
** Androidの設定 [#z3edbe38]
AndroidでビルドするにはPackage名の指定が必要です。
ユニークなPackage名を指定し、それに合わせてモジュールの配置も修正する必要があります
#geshi(Actionscript){{
<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を指定します。
#geshi(XML){{
<android target-sdk-version="16" />
}}
iOS版と同様、以下の記述で高速化できるみたいです。
#geshi(XML){{
<window hardware="true" allow-shaders="true" require-shaders="true" if="cpp"/>
<window vsync="true" antialiasing="4" if="cpp" />
}}
アイコン画像は以下のものを設定します
#geshi(XML){{
<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の設定 [#fd5914d4]
[[AdMobの設定方法>AdMob]]のページにまとめています。
----
** 参考リンク [#q6806b90]
- [[OpenFL - XML Format:http://www.openfl.org/documentation/projects/project-files/xml-format/]]
- [[HaxeFlixel - Docs - iOS:http://haxeflixel.com/documentation/ios/]]
- [[Haxe勉強会 / Haxe資料 / OpenFL / プロジェクトオプション:https://bitbucket.org/fukuokahaxe/haxe/wiki/Haxe%E8%B3%87%E6%96%99/OpenFL/%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3]]