
↑BLACK DIAMONDで作成したゲームです♪
ココでは、私の作成した『マンスリーハウス』を例にあげて説明をして行きたいと思います。まだお持ちでない方は、今すぐにDLですよ
(^_^;)
ここで紹介するスクリプトは、私の独断と偏見で作成した物ですので、本来の使い方とは異なる使い方も有るかも知れません。また、より効果的な使い方も有るかも知れません。あくまでも、一つの方法だとご理解下さい。
では『BLACK DIAMOND』を使って、早速ゲームを作ってみましょう。
まず基本事項ですが
『*』(アスタリスク)で始まる物が命令コマンドになります。
『>』で始まる物が入力を受付けるコマンドになります。
『#』で始まる物はコメントとしてスクリプト上では無視されます。
#_/_/_/_/_/_/_/_/_/ ENTRANCE /_/_/_/_/_/_/_/_/_/_/
*SCENE DOOR ・・・・・・・・・・@
*PICTURE entrance1 ・・・・・A
n
w + e
s
>open door ・・・・・・・・・・・・・・B
*F(0)=1
OK.
*PICTURE entrance2
>n ・・・・・・・・・・・・・・・・・・・・・C
*IF F(0)=0
NO!!
*ELSE
OK!!
*GOTO ROOM1n
*ENDIF
>NOMATCH ・・・・・・・・・・・・・D
NO!!
*SCENEEND ・・・・・・・・・・・・E
|
-
*SCENE〜*SCENEENDこの間が一つのシーンになります。『DOOR』と言う名前のシーンです。
-
『entrance1』と言う画像を読み出して表示します。
青文字で書かれている所が、そのままメッセージウィンドウに表示されます。
-
シーン『DOOR』で受付けるコマンドになります。open
doorと入力された時に、以下の部分を実行します。この場合、変数F(0)に1を代入します。その後に画面上にOK.と表示して『entrance2』と言う画像を読み込んで表示します。
さて、ここで変数F(0)について少し説明をします。変数F(0)というのは、Fと言う名前の箱が沢山あって、その中の0番目(正確には1番目の事)の箱の事を指します。ですからF(1)ならFと言う名前の箱の1番目(2番目の事ね)と言うことになります。つまりF(0)とF(1)は、同じFと言う箱でも違う物が入るって事です。このBLACK
DIAMOND(Ver1.00β4)ではFと言う箱を0〜511個(512個)まで使うことが出来ます。・・・本当はこう言うのを配列変数って呼びます!
話を戻しまして、ここではF(0)をドアが開いているか・閉まっているかを判断するためのフラッグに使用しています。要するに、open
doorと入力されたら「ドアが開いているよ〜」てなフラッグ(F(0)=1)を立てます。
-
これも上記3同様に受付けるコマンドになります。ここでは、新たな命令*IF〜*ELSE〜*ENDIFを使用しています。これは、*IF(もし)・F(0)=0(変数Fの0番目が0なら)・NO!!と表示しなさい。*ELSE(そうでないなら)OK.と表示してシーンROOM1nに飛びなさい。*ENDIF(IF命令終了)ってな感じです。
要するに、nと入力された時に、ドアが開いていれば(F(0)=1なら)次のシーンROOM1nにジャンプして、まだ開けていなければ進めないよって言う訳です♪
※アドベンチャーゲームの場合、殆どがこのIF命令によるフラッグ分岐が主流の作業になるでしょう!
-
>NOMATCH・・・これは、上記の受付けるコマンド以外の物を入力した時に返す値です。この場合、『open
door』か『n』しかコマンドを受付けず、それ以外のものを入力したときは、全て一律NO!!と表示します。
-
これで、このシーンも終了です。
ココまでを実行すると↓こんな感じになります♪
ここでもう一工夫!
↓この様に黄色字の部分を追加してあげると、一度ドアを開ければ次にopen
doorと入力しても『もう開いてるでしょ!』とメッセージが帰ってくるように出来ます。これで画像の再描画を防ぎ、よりゲームのクオリティーが上がりますね♪
>open door ・・・・・・・・・・・・・・B
*IF F(0)=0
*F(0)=1
OK.
*PICTURE entrance2
*ELSE
もう開いてるでしょ!
*ENDIF
|
ここまで出来れば、後は楽勝♪
上手く出来たら、次に進みましょう --->
|