スロットゲームを作ろう(2007/04/04)
さて、前回の予告どおり、パチンコ屋通いの成果を見せていこう。服がタバコくさくてたまらん。まずは昨日の収支報告。ではなく、ステート変数を使いゲームの状態を管理するところから解説。初歩の初歩。
まず、それにはステート変数が一つ必要だ。UJMLでは良く、画面に表示するオブジェクトの表示/非表示を管理するために、boolean型でステート変数を宣言することが多いが、今回はint型で宣言した。その名も、sBaseStatus。
<state-var name="sBaseStatus" type="int"/>
こんな感じ。(一応下のソースコードでは太字にしてある)
この変数はint値をとることになるのだが、その値によってゲームの状態を管理しよう。最初のステップはこんなところで、実際に作ってみたサンプルはこちら。ゲームの状態を
0:スタート画面
1:ゲーム中
2:ゲーム終了(結果表示とか)
と思いっきり簡単にした。それで、それぞれの値を変更し、sBaseStatusの各値に定義したことをさせているのだが、ここでは単に<label>要素を表示されているだけ。
※おっと、せっかくなのでflash版で貼り付けようとしたが、今回はお休みということで。次回以降に持ち越し。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ujml PUBLIC "-//UIEVOLUTION//DTD UJML 2.1//EN"
"http://www.uievolution.com/dtd/ujml-2.1.dtd" [
]>
<ujml>
<application>
<state-variables>
<state-var name="sBaseStatus" type="int"/>
</state-variables>
<script>
sBaseStatus = 0;
</script>
<display>
<!-- Display F1 function key for exiting app -->
<fn>
<text>終了</text>
<event name="onselect">
<accelerators>
<key>F1</key>
</accelerators>
<script>
_unload();
</script>
</event>
</fn>
<fn>
<text>次へ</text>
<event name="onselect">
<accelerators>
<key>F2</key>
</accelerators>
<script>
if(sBaseStatus==0){
sBaseStatus = 1;
}else if(sBaseStatus==1){
sBaseStatus = 2;
}else if(sBaseStatus==2){
sBaseStatus = 0;
}
</script>
</event>
</fn>
</display>
<states>
<state var="sBaseStatus">
<transition value="0">
<comment>スタート画面の状態:各種機能メニュー等を表示</comment>
<display>
<label>
<text>スタート画面</text>
</label>
</display>
</transition>
<transition value="1">
<comment>ゲーム中</comment>
<display>
<label>
<text>ゲーム中</text>
</label>
</display>
</transition>
<transition value="2">
<comment>ゲーム終了 結果表示等</comment>
<display>
<label>
<text>ゲーム終了:結果表示</text>
</label>
</display>
</transition>
</state>
</states>
</application>
</ujml>
コメント