RPGシリーズ4回目は「コマンドウィンドウ」に挑戦してみましょう。
コマンドウィンドウとは「話す」「調べる」などのメニューのことですね。
実装の方法は色々ありますが、初心者の方でもカンタンに作れる方法をご紹介します。

サンプルはこちらhttp://scratch.mit.edu/projects/47859526/
WS0000


スクラッチのイベントブロック「メッセージ」を使ってコマンド入力が実装できます。
「中を見る」で確認していきましょう。 
 

まずは画像の準備!

コマンド入力の画像をよういしましょう。
毎回、画像準備でイヤになってきた方は
サンプルでご紹介したコマンド画像を使っていただいてもかまいません。
menu4
各メニューにカーソルがあっている画像を4枚用意して
スプライトに追加し、コスチュームでメニューが変更できるようにします。
(よくわからない方はサンプルの中を見て下さいね)

メッセージを使おう

画像の準備ができたら、コマンドを表示させるプログラムを書きましょう。
今回は「aキー」が押されたらコマンドウィンドウが出てくるようにしてみました。
WS0002
「コマンド表示中」という変数は、いまウィンドウがどの状態かを表しています。
0:コマンドウィンドウ非表示
1:コマンドウィンドウ表示
2:コマンドウィンドウ非表示だが会話ウィンドウ表示中

aキーを押されて、会話ウィンドウが表示されていなければ
コマンドウィンドウを表示します。

コマンド決定キーもaボタンに設定していますので
コマンドウィンドウ表示中にaボタンが押されたら
「コマンド押されたよ」のメッセージを送っています。

ちなみに、「aキーが押されたとき」のブロックは
「イベントブロック」の中の「スペースキーが押されたとき」ブロックの
▼をクリックすると、キーが選べます。
WS0004

 

メッセージを送るには?

「コマンド押されたよ」のブロックはどうやって作ればよいでしょうか?
WS0005
「イベントブロック」の中に「message1を送る」というブロックがあります。
このブロックの▼を押すと・・・
WS0006
新しいメッセージというメニューがありますね。
これをクリックして下さい。

WS0007
新しいメッセージのウィンドウがひらきますので
好きなメッセージ名を入れて下さい。
変な名前を付けると(aaaとか)デバッグするときや後から見たときに困りますので
分かりやすい名前でおねがいします。

これで、「コマンド押されたよ」のメッセージを送ることができます。
送ったメッセージを受け取るには
WS0010
同じように「message1を受け取ったとき」のブロックから▼を押して
「コマンド押されたよを受け取ったとき」に変更して使ってください。

WS0011
 あとは、受け取ったときにコスチューム番号で
何のコマンドが押されたかを判断しましょう。
1:話す 2:調べる…のように処理分けしていきます。
(今回はサンプルなので話すコマンドだけです) 

今度は「話す」のメッセージを送っています。
WS0015
メッセージは「window」など3つのスプライトで受け取りしています。
メッセージの良いところは複数のスプライトを操作できる点ですね。
 WS0012
windowのスクリプトはこんな感じ。
今回は会話の実装はしていないのでウィンドウを表示するだけのプログラム。

aキーで再びおわりのメッセージを送って終了です。

まとめ

キーの受け取り方法は「メッセージ」のほかにも「調べる」から取得する方法もありますよね?

今回は、コマンドウィンドウ表示やコマンド入力に「メッセージ」を使っていましたが
最初に作ったときは「ずっと」で「しらべる」処理をしていました。
ローカルで作ってサクサク動いたので、Scratchのサイトにアップロードしたのですが
オンラインでは動きが重く、なかなかキーが思うように取れなかったので
「ずっと」をやめて「メッセージ」でコマンドを受け取ることにしました。
(歩行は「ずっと」を使っています) 

会話ウィンドウの実装もしていきたいのですが、文字の表示方法が
ちょっと初心者向けじゃないので、別の方法も考えていきたいと思います。