◆◆ LAST UPDATE 2004.07.20

■ 第二十夜 メニューについて

[MXNovel INDEX] [戻る] [次へ]

■ 第二十夜 メニューについて

エムノベファンの皆様、こんばんは。 MTL研究室の桜花です。
今夜は「メニュー」について、説明いたします♪

アドベンチャーゲームでメニュー選択といえば・・・
ストーリーの分岐やユーザの行動を選択する場合に使うことが多いかと思います。

仮に、ストーリーの分岐がない作品を考えてみると、それは、紙芝居やショートノベルのような作品になるかと思います。
まぁ、それはそれで1つのジャンルとしては面白いわけですが、
ゲームとして考えてみると、ユーザの意思選択は必須になりそうです。

そんなわけで、今夜は「メニュー」について、説明いたします♪
それでは、いつものように、スクリプトファイルを開いて、312行目を注目してみましょう。


312行 :dim r = -1                             ; 変数r に -1 をセットする。
313行 :menu r 音楽CDを聴きますか?          ; メニュー開始
314行 :● 1曲目を聴く。                     ; メニューテキスト1(r = 1)
315行 :● 今、手元に音楽CDがない。         ; メニューテキスト2(r = 2)
316行 :endmenu                                ; メニュー終了
317行 :
318行 :if r == 1 then                         ; 選択1の処理開始
319行 :stop
320行 :cd 1 noloop
321行 :
322行 :msg
323行 :[葵]
324行 :どう? 再生できましたか?
325行 :(注意: 音楽CDでない場合は無視しますよ〜♪)
326行 :endmsg
327行 :                                       ; 選択1の処理終了
328行 :else                                   ; 選択1以外の処理開始
329行 :
330行 :msg
331行 :[葵]
332行 :それは残念。 また今度、試してみて。 
333行 :endmsg
334行 :
335行 :endif                                  ; 選択1以外の処理終了


メニューで表示したいテキスト(メニューテキスト)を、menu(メニュー開始)とendmenu(メニュー終了)の間でくくります。
とっても簡単ですね。 menuとendmenuは、2手一組の必殺コンボですよ〜。 これもお約束。

メニューテキストは、最大で10行まで指定することができます。(エムノベ仕様^^;)

ちなみに、↑のスクリプトの意味は・・・
312行は、メニューで選択した値を保存するための変数rを定義しています。(−1で初期化)。
313行は、メニューを始めるよ〜 と宣言して、316行目でメニューを終了するよ〜 ・・・と意味になります。

ユーザはメニューの中から、お好みの項目を選択します。
もし、「● 1曲目を聴く。」(314行目のテキスト)を選択したなら、変数rには1が代入されます。
もし、「今、手元に音楽CDがない。」(315行目のテキスト)を選択したなら、変数rには2が代入されます。

おっとと・・・そういえば、まだ、変数の説明をしていませんでしたね^^;
次夜に詳しく説明しますが、ついでなんで、覚えちゃってください。


では、312行目を注目してください。 「dim r = −1 」とあります。
これが、まさに変数です。 意味は「変数r に −1を代入せよ。」です。

※ 注意
エムノベ(Ver 0.05)で扱う変数は、数値のみ代入できます。


ユーザはメニューの中から任意の項目を選択します。
その選択したメニューテキストを条件にして、処理を分岐します。

条件分岐については、別途の機会に詳しく説明しますが、
今夜のサンプルスクリプトを説明するためにも? ・・・という使命感?にかられ、補足説明します。

■ 条件分岐パターン

◆ 条件分岐パターン1

if 変数名r == 比較する値 then
処理1 
処理2 
処理3 
処理4 
endif


条件パターン1の意味は
「もし、変数名rが比較する値と等しかったら、endifまでの処理を順次実行しなさい。 」です。
ある条件の時だけ、処理1〜4を実行したい場合に使います。


◆ 条件分岐パターン2
if 変数名r == 比較する値 then
処理1 
処理2 
処理3 
処理4 

else

処理5 
処理6 
処理7 
処理8 
endif

条件パターン2の意味は
「もし、変数名rが比較する値と等しかったら、elseまでの処理を順次実行しなさい。
そうでない場合は、elseからendifまでの処理を順次実行しなさい。 」です。

ある条件の時だけ、処理1〜4を実行する。また、それ以外の場合は、処理5〜8を実行する。

今夜のサンプルは、条件分岐パターン2を使っています。
では、いつものように、コマンド表にまとめます。

■ menuコマンド
項目 内容
分類 メニュー開始コマンド
MXNovel エンジン Ver 0.04
機能 メニューの開始を宣言します。 menuより下の行がメニューテキストになります。
構文 menu 変数名
menu 変数名 メニュータイトル
パラメータ パラメータ1:  変数名
パラメータ2:  メニュータイトル
          ・メニューにタイトルをつけたい場合は、ここに指定します。
          ・メニュータイトルは省略可能です。


■ endmenuコマンド
項目 内容
分類 メニュー終了コマンド
MXNovel エンジン Ver 0.04
機能 メニューの終了を宣言します。 endmenuより上の行がメニューテキストになります。
構文 endmenu
パラメータ なし。



■ 編集後記

今夜は、メニューについて、説明いたしました。
次夜は、変数について説明したいと思います。
では、今宵はこのあたりで・・・しーゆ♪



[MXNovel INDEX] [戻る] [次へ]
◆◆ LAST UPDATE 2004.07.20