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の設定方法のページにまとめています。


参考リンク