タイトルに選択肢をつける


選択肢について

はじめに

これまでに作ったタイトル画面は、「クリックすると始まります」という文章が表示されておりました。
ゲームのタイトルと言うより、扉絵といった趣でありますので、これを「はじめから」「つづきから」「おしまい」といったものに、選択肢の機能を使って作りかえます。

実際に取りかかる前に、下準備として、メッセージレイヤーを大きくしておきます。
テキストファイル上で「# タイトル画面用のメッセージレイヤーを作る」だった所を、以下のように変更してください(なお、2行目は同じです)。

# 選択肢用のメッセージレイヤーを作る
	*EzMes = 200,280, 240,100;
	*EzMesColor  = blue, 32;

これは、「はじめから」「つづきから」「おしまい」で、三行ございますので、その大きさを織り込んでおります。また、ついでに位置も変更しておきました。

選択肢

いよいよ選択肢に取りかかります。
「クリックすると始まります」の行を、以下の選択肢の命令に変更します。

# 選択肢の表示
	&EzSel = はじめから:@begin, つづきから:@cont, おしまい:@end;

# 選択後の処理
@begin
	「はじめから」を選択しました。
@cont
	「つづきから」を選択しました。
@end
	「おしまい」を選択しました。

&EzSelという命令が、実際に選択肢を表示する命令です。
「# 選択後の処理」以下は、それぞれ選択された時に実行する部分です。

&EzSelについて、もう少しご説明いたします。
この命令の右辺を見ていただくと、カンマ( , )で区切られているのがおわかりにるかと思います。
・はじめから:@begin
・つづきから:@cont
・おしまい:@end
それぞれがコロン( : )で区切られておりますが、コロンまでが画面に表示される選択肢になり、実行中にそれが選択されたらコロンより後に飛ぶ、という動作になります。

0-5-1

なお、この例では「はじめから」「つづきから」「おしまい」の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にございますので、よろしければご覧下さい。


 [前のページ]   [目次に戻る]   [次のページ]