シーンについて

STG-ONUXMLではシューティングゲームにおける画面の大きな切り替わりをシーンという形で分割して処理しています。このシーンは正負の整数を用いて表現されます。ゲーム起動時にはまずシーン1から始まります。また、シューティングゲーム本体は負の数のシーンになります。シーン0は現在表示されているシーンを指す特別なシーンになります。
また、シーンほど大きな画面の切り替わりではなく、少しの変化だけを起こさせたいときには子シーンというシステムを実装しています。

シーン定義ファイル(opening.xml)

ルートタグ scene

<scene>
  <A>
    <B>
      <C>X</C>
      <C'>X</C'>
    </B>
    <B'>x</B'>
  </A>
</scene>
Aのタグ内にひとつのシーンを記述します。Aのタグ名はそのシーンの名前に当たりますが、実際にはその名前は使われず、先頭から1,2,3と番号が振られます。
Bのタグにはそのシーンで表示させたいオブジェクトを書きます。また、表示させるオブジェクトによってはCのタグでパラメータを設定するものと、直接Bの中に記述するものもあります。

子シーン

<scene>
  <A>
    :
  </A>
  <A event= "X" param="Y">
    :
  </A>

</scene>
子シーンは親のシーンを定義したすぐ後に、つづけて、event属性を付けて記述することで作成できます。
また、イベント属性にはその子シーンを表示する条件を書くことができます。通常のシーンの場合だと移動する際に前回のシーンは完全に消えてしまいますが、子シーンの場合だと消えずに上から描かれます。
子シーンでは通常のシーンと同じタグを使うことができます。 event属性
event
event=""
event属性はparam属性と一緒に使われます。
 decide  決定ボタンが押されたときに子シーンを表示。
param属性には0から順に何回目かを記述
 time  時間で自動的に表示。
param属性には何フレーム目で表示するかを記述
 

シーン内タグ


object
<object>タグ</object>
初期値:なし
オプション:loop
標準オブジェクトタグ

通常の画像を表示させたりするのに使う。パラメータをタグで定義する。
詳しくは標準オブジェクトタグ の項で 

POINT
<POINT>タグ</POINT>
初期値:なし
オプション:なし
得点オブジェクトタグ

得点を表示させたりするのに使う。パラメータをタグで定義する。
詳しくは得点オブジェクタグ の項で 

string
<string>タグ</string>
初期値:なし
オプション:なし
文字列オブジェクトタグ

システム内の文字を表示させたりするのに使う。パラメータをタグで定義する。
詳しくは文字列オブジェクトタグ の項で

BGM
<BGM>タグ</BGM>
初期値:なし
オプション:なし

ゲーム中での音楽を指定する。パラメータをタグで定義する。ただし、現在使えるタグはfileタグのみで<file>ファイル名</file>のように指定する。

JUMP
<JUMP>1</JUMP>
初期値:なし
オプション:なし

おもに子シーンで使う。パラメータは直接このタグの中に記述。シーンを記述したシーンに強制的に飛ばす。

VALUE
<VALUE>var=1</VALUE>
初期値:なし
オプション:なし

おもに子シーンで使う。変数への代入式を書くことができる。
実行されるタイミングはそのシーンが表示される瞬間。