これまでに作ったタイトル画面は、「クリックすると始まります」という文章が表示されておりました。
ゲームのタイトルと言うより、扉絵といった趣でありますので、これを「はじめから」「つづきから」「おしまい」といったものに、選択肢の機能を使って作りかえます。
実際に取りかかる前に、下準備として、メッセージレイヤーを大きくしておきます。
テキストファイル上で「# タイトル画面用のメッセージレイヤーを作る」だった所を、以下のように変更してください(なお、2行目は同じです)。
# 選択肢用のメッセージレイヤーを作る *EzMes = 200,280, 240,100; *EzMesColor = blue, 32;
これは、「はじめから」「つづきから」「おしまい」で、三行ございますので、その大きさを織り込んでおります。また、ついでに位置も変更しておきました。
いよいよ選択肢に取りかかります。
「クリックすると始まります」の行を、以下の選択肢の命令に変更します。
# 選択肢の表示 &EzSel = はじめから:@begin, つづきから:@cont, おしまい:@end; # 選択後の処理 @begin 「はじめから」を選択しました。 @cont 「つづきから」を選択しました。 @end 「おしまい」を選択しました。
&EzSelという命令が、実際に選択肢を表示する命令です。
「# 選択後の処理」以下は、それぞれ選択された時に実行する部分です。
&EzSelについて、もう少しご説明いたします。
この命令の右辺を見ていただくと、カンマ( , )で区切られているのがおわかりにるかと思います。
・はじめから:@begin
・つづきから:@cont
・おしまい:@end
それぞれがコロン( : )で区切られておりますが、コロンまでが画面に表示される選択肢になり、実行中にそれが選択されたらコロンより後に飛ぶ、という動作になります。
なお、この例では「はじめから」「つづきから」「おしまい」の3つですが、Famous Writer自体は、任意の数の選択肢が作成できます。
この「@begin」「@cont」「@end」は、アンカーといいます。
アンカーは、命令内に書かれている時は飛び先を、行として書かれている時は飛び元を、それぞれ指定します。
HTMLにも同じ名前のものがございますので、ホームページを作ったことがある方なら、使ったことがあるかもしれません。
取り急ぎ、実行してみましょう。
選択肢で「はじめから」を選ぶと、「はじめからを選択しました」という行が表示されます。
「つづきから」を選ぶと、「つづきからを選択しました」という行が表示されます。
つまり、適切な所に飛んでいるのが、おわかりになりますでしょうか。
ところが、「はじめから」と「つづきから」を選んだ場合は、それ以下のテキストも表示されてしまいます。
そこで、&Jmp命令を使って、選択肢の所に戻します。
選択肢の前にも、戻り先としてのアンカーを作ります。ここでは「@select」としておきます。
以下のようになります。
@select # 選択肢の表示 &EzSel = はじめから:@begin, つづきから:@cont, おしまい:@end; # 選択後の処理 @begin 「はじめから」を選択しました。 &Jmp = @select; @cont 「つづきから」を選択しました。 &Jmp = @select; @end 「おしまい」を選択しました。 &Jmp = @select;
これで、選択肢を選ぶと、適切に動作するようになりました。
上で少し触れましたが、&Jmp命令は、ファイルでもアンカーでも同じように指定できます。
選択肢を使いこなすためには、いわゆる情報処理の「流れ制御」という概念が必要になってきます。
はじめて触れられる方は戸惑うかもしれませんが、いろいろ試してみることで、ご理解いただけたらと思います。
なお、ここで作ったdataフォルダは、このマニュアルの、My Game/data.0-5-1にございますので、よろしければご覧下さい。
それでは、選択後の動作を、実際に作ってゆきます。
まず、簡単な「はじめから」から作ります。
作ると言うよりは、今までscenario.txtに移る前にしていた処理を、そのまま移動してきただけです。
ただし、最初に &Draw 命令が追加されております。
@begin # 選択肢を画面から消す &Draw; # ブラックアウト &EzBF = black, 702; # 本編用のメッセージレイヤーを作る *EzMes = 0,0, 640,480; *EzMesColor = Black, 64; # scenario.txtに飛ぶ &Jmp = /scenario.txt;
この&Draw は、注釈にもございますとおり、選択肢を画面から消すために追加いたしました。
命令マニュアルをご参照いただくと、通常&Draw は右辺を書きますが、省略すると &Draw = 0; として機能いたします。従って、ここでは画面の再描画的な使い方になります。
また、&Draw は本来メッセージレイヤーを消しますので、それを利用して「選択肢をメッセージレイヤーごと消す」という動作を期待しております。
そのような動作になりますので、この&Draw はなくても動作に支障はありません。
プレイする側にとって、アクションに対する反応としてわかりやすいので、このようにいたしました。
「おしまい」の処理も、今までやってきた命令だけで作ることが出来ます。
ここでも、&Draw と &EzBF を使ってますが、これも演出的な好みの問題ですので、なくても構いません。
@end # 選択肢を画面から消す &Draw; # ブラックアウト &EzBF = black, 702; # Famous Writerの終了 &End;
&Drawについては、上の二つと同じです。
@cont # 選択肢を画面から消す &Draw; # ロード命令 &Menu.Load; # キャンセルされた場合は、選択肢に戻る &Jmp = @select;
&Menu.Load命令は、ちょうどメニューでロードを選んだ時と同じ動作をします。
従って、「つづきから」を選ぶとロード画面が開く、という動作になります。
また、この命令は、キャンセルされると次の行が実行されてゆきますので、その時の動作が必要になります。
最後の行の&Jmp命令で、ふたたび選択肢に戻してやります。
いかかでしょうか。
これで、ゲームらしい体裁は整ってきたかと思います。
次のページでは、仕上げをして、いよいよ完成になります。
なお、ここで作ったdataフォルダは、このマニュアルの、My Game/data.0-5-2にございますので、よろしければご覧下さい。