正解と不正解で表示画面を分けるため、結果を送信する
数回に分けて続けている、Scratch(スクラッチ)での「○×クイズアプリ」の作成。
ここまでで組んだスクリプトを実行すると、このように問題が出題されるところまできています。
(ここまでの詳細は、【○×クイズ】の1、2、3をご覧ください)
上の記事の最後の状態に、○と×、問題文をそれぞれどこに表示するかの位置情報を追加した状態から、今回の記事はスタートです。
クリックをきっかけにメッセージを送信させる
この「○×クイズ」アプリでは、正解したときと不正解だったときで、表示されるカニの色とセリフが違います。そこでまずは、○と×のどちらがクリックされたかをカニに知らせる仕組みを作っていきましょう。
回答者がクリックした結果をカニに知らせるには、クリックされた方のスプライトから、「自分がクリックされた」ということを知らせるメッセージを発信させます。
○と×、それぞれの場合をでどのようにブロックを並べるか見てみましょう。
○がクリックされた場合は「一問目正解」のメッセージを送る
図のアプリ場合、一問目では、○が正解、×が不正解です。
そこで「黄色の○」のスプライトには、自分がクリックされたときは〇の表示を消し、「一問目正解」というメッセージを送るように設定します。
きっかけとして「このスプライトがクリックされたとき」ブロックを使い、「黄色の○」を非表示にするための「隠す」ブロックを間に挟み、次のブロックで「一問目正解」というメッセージを送らせています。
×が送られた場合は「一問目間違い」のメッセージを送る
一方「黄色の×」がクリックされた場合は、送るメッセージの内容は「一問目間違い」にします。○をクリックした場合とブロックの並び方は同じですが、送るメッセージの内容を「一問目まちがい」に変えました。
メッセージの送り方、バックパックの使い方の参考記事はこちら
メッセージの送り方は、過去記事「会話のキャッチボールも楽々!動きのきっかけを指定する」で詳しく紹介しています。こちらも参考にしてください。
また、このように別のスプライトに似たようなブロックを使うときは「違うキャラへのブロックのコピーもできる!押さえておきたいScratchの便利機能」の記事で紹介したバックパックを使うと簡単にできます。ぜひ活用してみましょう。
クリックされなかった場合も隠す設定もしておこう
今回のアプリでは、○、×のどちらがクリックされた場合でも、クリックされなかった方も同時に非表示にする必要があります。
そこで○、×それぞれがクリックされたときに送るメッセージをきっかけに、選ばれなかったもう一方のスプライトも消えるように設定しておきましょう。
まずは「黄色の○」スプライトです。このようにブロックを追加することで、「黄色の×」スプライトがクリックされたときに送る「一問目まちがい」のメッセージをきっかけに、○のスプライトも非表示になります。
もう一方の「黄色の×」にも同様に、「黄色の○」がクリックされたときに、非表示になるようブロックを並べます。
これで○と×どちらがクリックされた場合、カニに結果のメッセージが送られ、○と×の両方が消えるようになりました。
次回は、回答者のクリック結果を受け取ったカニの設定を行います。
ここまでくれば、アプリ完成はもうすぐそこです!