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]]