QAS 2.0 Layers.xml

ta の中に入れるレイヤー設定ファイル「Layers.xml」の記述方法を説明します。

Layers.xml は XML というファイル形式で書かれています。 正確に記述できるように、XML エディターなどを使うと良いでしょう。

サンプル

以下にサンプルを示します。

<?xml version="1.0"?>
<LayerList version="1.0">
  <Layer>
    <name>frame</name>
    <priority>1</priority>
    <x>0</x>
    <y>0</y>
    <width>640</width>
    <height>480</height>
  </Layer>
  <Layer>
    <name>back</name>
    <isClearUpperLayer>true</isClearUpperLayer>
    <priority>3</priority>
    <x>0</x>
    <y>0</y>
    <width>640</width>
    <height>300</height>
  </Layer>
  <Layer>
    <name>charl</name>
    <updateFromPriority>2</updateFromPriority>
    <priority>4</priority>
    <x>0</x>
    <y>0</y>
    <width>320</width>
    <height>300</height>
  </Layer>
  <Layer>
    <name>charr</name>
    <updateFromPriority>2</updateFromPriority>
    <priority>4</priority>
    <x>320</x>
    <y>0</y>
    <width>320</width>
    <height>300</height>
  </Layer>
  <Layer>
    <name>charc</name>
    <isUpdateLowerLayer>true</isUpdateLowerLayer>
    <priority>4</priority>
    <x>0</x>
    <y>0</y>
    <width>640</width>
    <height>480</height>
  </Layer>
  <Layer>
    <name>face</name>
    <priority>5</priority>
    <x>16</x>
    <y>316</y>
    <width>130</width>
    <height>150</height>
  </Layer>
</LayerList>

レイヤーに関する基礎事項

あるレイヤーが更新された場合、 そこから優先度の順に再描画されます。

但し、レイヤー設定において、 更新されたレイヤーより優先度の低いレイヤーから 再描画するように指定していた場合は、 指定されたレイヤーから優先度の順に再描画します。

また、全レイヤーを再描画する場合は、 画面全体を黒く塗り潰してから描画を始めます。 常に全レイヤーを再描画していると少し重くなるかも知れません。

描画の際には、全レイヤーの状態をチェックして 再描画すべき最も優先度の低いレイヤーを探します。 ゲームの速度を気にする場合には慎重に設定してください。

要素解説

LayerList

最上位に記述し、この下に各レイヤーを列記します。

Layer

レイヤーの実体です。 この下にレイヤーごとの設定内容を記述します。

name

レイヤー名です。 シナリオファイルで画像を表示するレイヤーを指定する際に使用します。

priority

レイヤーの優先度です。0 から 255 が使えます。

最も優先度の低いレイヤーが最初に描画され、 そのあと優先度順に描画されていきます。

優先度の同じレイヤーがどの順番で描画されるかは未定義です。

x

レイヤーの左上の x 座標です。

基本的にこの座標より左側に画像を表示することはできません。

y

レイヤーの左上の y 座標です。

基本的にこの座標より上に画像を表示することはできません。

width

レイヤーの幅です。 x + width - 1 の合計値がレイヤーの右端になります。

基本的にレイヤーの右端より右に画像を表示することはできません。

height

レイヤーの高さです。 y + height - 1 の合計値がレイヤーの下端になります。

基本的にレイヤーの下端より下に画像を表示することはできません。

isUpdateLowerLayer

そのレイヤーが更新された場合に、 最も優先度の低いレイヤーから再描画する (全レイヤーを再描画する)かどうかを設定します。

true
有効にします。
false
無効にします。デフォルト設定です。

透過された画像を使用する場合、 このオプションを設定しないと更新前の画像が残ってしまいます。

isUpdateLowerLayer が false の場合

isUpdateLowerLayer が false の場合

isUpdateLowerLayer が true の場合

isUpdateLowerLayer が true の場合

updateFromPriority

任意の優先度を指定します。

レイヤーが更新された場合に、 指定した優先度のレイヤーから再描画します。

isClearUpperLayer

レイヤーが更新された場合に、 そのレイヤーより優先度の高いレイヤーをクリアするかどうかを設定します。

true
有効にします。
false
無効にします。デフォルト設定です。

背景レイヤーが更新された際に 自動的にキャラクター画像を消去したい場合などに使用します。

isClearUpperLayer が false の場合

isClearUpperLayer が false の場合

isClearUpperLayer が true の場合

isClearUpperLayer が true の場合