Scratchで4択クイズを作ろう ③選択肢を表示しよう

記事内に広告が含まれています。
タイトル

このページは、画像を見ながら順番にまねしていくだけでも進められるようにしています。
文章では、作り方の理由やプログラミングの考え方も補足しているので、気になる人はあわせて読んでみてください。

前回は1問目を出題するプログラムを作りました。

今回は4択の選択肢の変数やスプライトを用意して、問題が読まれたあとに表示するプログラムを作っていきます。

前回の記事はこちら:②問題を出そう

4択クイズを作ろう トップ記事はこちら:Scratchで4択クイズを作ろうトップ記事

バババ
バババ

解説の画像が見づらい時は、画像をクリックして拡大して見てね!

■■■スポンサーリンク■■■

選択肢を表示する

まずは4択の選択肢を表示するプログラムを作っていきます。

選択肢は以下の画像のように、4つの箱を用意して、その中に変数を表示させるようにします。

そして、箱をクリックすると、答えが選択できるようにしていきます。

それでは早速作っていきましょう!

選択肢用のスプライトを用意する

まずは、選択肢の箱のスプライトを作っていきます。

今回は「描く」でスプライトを作っていきますが、下の画像のようなボタンのスプライトがあるので、わざわざ作るのは手間だなと思ったら、これを使っても問題ありません。

上のボタンを使う人は、ここは飛ばしてください。
次のステップまで読み飛ばす

それでは選択肢のスプライトを作っていきましょう。

「スプライトを選ぶ」の中の「描く」をクリックしましょう。

スプライトを描くをクリック

四角形をクリックして、四角形を描きましょう。
四角形の色や枠線は自由に設定しましょう。

このスプライトを複製して、画面の下の方に4つ入るように調整しましょう。

スプライトを右クリックして、「複製」をクリックするとコピーすることができます。

スプライトの複製

下の画像のような感じで、スプライトを4つ並べましょう。

この箱の中にクイズの選択肢を表示するので、文字が全部入る大きさにしましょう。

選択肢用スプライトを並べる

もし、クイズの答えが長くて箱の中に入らなそうな場合は、箱の横幅を広くしてたてに4つ並べるようにしても大丈夫です。

選択しようスプライトを縦に並べる

スプライト名をわかりやすい名前に変更しましょう。以下のような名前に変更します。

  • 選択肢A
  • 選択肢B
  • 選択肢C
  • 選択肢D
選択肢用スプライトの名前を変更

これで、スプライトの用意は完了です。

選択肢を設定する変数を作成する

用意したスプライトに選択肢を表示するための変数を作成していきます。

変数の中の『変数を作る』をクリックしましょう。

変数を作るをクリック

変数名に「A」と入力しましょう。
「すべてのスプライト用」を選択しましょう。
「OK」をクリックしましょう。

変数の設定

これで、「A」という変数ができました。

この変数は、選択肢Aを表示するために使用します。

出来上がった変数の確認

同じ手順で、ほかの選択肢を表示するための変数も作成しましょう。変数名は次の名前で作成してください。

  • B
  • C
  • D
他の変数を作成

これで、選択肢を表示するための変数を作ることができました。

次に、作成した変数を選択肢用のスプライトの中に移動させます。

ゲーム画面の変数をドラッグして、選択肢用のスプライトの中に移動しましょう。

変数の表示位置の調整

移動したら変数の左のチェックを外して非表示にしましょう。

編巣を非表示にする

これで、選択肢を表示するための準備が完了しました。

問題と一緒に選択肢を表示する

ここからは問題が出されたときに一緒に選択肢を表示するためのプログラムを作っていきます。

問題を読み終わったらメッセージを送って、そのメッセージを受け取ったら選択肢を表示するようにしていきます。

メッセージを送る

まずは、メッセージをプログラムを作っていきます。

①問題を読んでくれるスプライトをクリックしましょう。
②一番下に、『メッセージ▼を送る』ブロックをくっつけましょう。
③「メッセージ」のところで「新しいメッセージ」をクリックして、「出題」というメッセージを作りましょう。

出題メッセージを送る

これで、問題を読み終わったら「出題」というメッセージが送られるようになりました。

メッセージを受け取って「選択肢A」を表示する

次に、メッセージを受け取るプログラムを作っていきます。

①「選択肢A」のスプライトクリックしましょう。
②イベントの中の『メッセージ▼を受け取ったとき』ブロックをドラッグしましょう。「メッセージ▼」の部分を「出題」に変更しましょう。

出題メッセージを受け取る

問題を読み上げてから、少し間を空けてけから表示させたいので、制御の中の「1秒間待つ」ブロックをくっつけます。(間を空けなくてもいいと思ったら、これは無くても良いです。)
「1秒」を「2秒」に変更します。

2秒待つ

選択肢を画面に表示するために、変数「A」に「選択肢A」リストから今の問題の選択肢を設定します。

変数の中にある『変数▼を0にする』ブロックを下にくっつけましょう。
「変数▼」の部分を「A」に変更しましょう。

変数Aに値の設定

変数の中にある『リスト▼の1番目』ブロックをドラッグしましょう。
「リスト▼」の部分は「選択肢A」にしましょう。
「1」の部分に、変数の中の『問題数』をはめ込みましょう。

リストの値を変数に設定するための準備

このブロックを、『A▼を0にする』ブロックの「0」の部分にはめ込みましょう。
変数の中の『変数A▼を表示する』ブロックを下にくっつけましょう。

リストの値を変数に設定

これで、Aの選択肢が表示されるようになります。

緑の旗をクリックして実行してみて、ちゃんと表示されるか確認してみましょう。

選択肢Aが表示されることを確認

ちゃんと表示されましたか?

もしうまく表示されない場合は、プログラムを見直してみてください。

これで、選択肢Aの表示が完了しました。

ほかの選択肢も表示させる

同じ手順でほかの選択肢も表示させていくのですが、少し楽をしましょう。

ひとつずつブロックを組み立てるのは面倒なので、選択肢Aで作ったプラグラムをコピーしたいと思います。

一番上のブロックを「選択肢B」のスプライトにドラッグしましょう。

これでブロックをコピーすることができます。

「選択肢B」のスプライトをクリックして、「A」となっている部分をすべて「B」になるように変更しましょう。

選択肢Bスプライトの変更

もし、選択肢Aが表示されてから少し間を空けて選択肢Bを表示したい場合は、『2秒待つ』ブロックの秒数を「2」より大きい数字に変更してください。

選択肢Aが表示されてから2秒後に選択肢Bを表示したい場合は「4」を設定します。

選択肢Bの表示タイミングの調整

これで、選択肢Bの表示が完了しました。

同じ手順で選択肢Cと選択肢Dの表示プログラムも作成してみてください。

ブロックをコピーしたあとに、変数やリストを変更するのを忘れないように注意しましょう。

できたら実行してみて、正しく選択肢が表示されるか確認しましょう。

もし、うまく表示できない場合は、下の選択肢Cと選択肢Dのプログラムを見て違うところがないか確認しましょう。

選択肢Cと選択肢Dのプログラムは次のようになります。

<選択肢C>

選択肢Cのプログラム

<選択肢D>

これで、選択肢の表示が完了です。

選択肢を隠す処理を追加する

選択肢は表示できるようになりましたが、一度実行すると表示されたままになっています。

そのため、ゲーム開始時に選択肢の変数を隠す処理を追加しましょう。

①スプライトの「選択肢A」をクリックしましょう。
②イベントの中の『緑の旗が押されたとき』ブロックをドラッグしましょう。
③変数の中の『変数A▼を隠す』ブロックを『緑の旗がおされたとき』ブロックにくっつけましょう。

ほかの選択肢のスプライトにも同じようにプログラミングしましょう。

できたら、ゲームを開始したときに選択肢が隠れるか確認しましょう。

もし、隠れない選択肢がある場合は、『変数A▼を隠す』ブロックの「A▼」の部分がスプライトと同じアルファベットが設定されているか確認してみてください。

これで、選択肢を隠す処理が完了です。

まとめ

お疲れ様です!
これで問題が読まれたあとに選択肢が表示されるようになりました。

選択肢を表示させる位置は自由に変更しても大丈夫ですので、こうしたほうがいいなと思ったら、どんどんアレンジしてみてください。

次回は、選択肢を選んで問題に回答するプログラムを作ります。

次の記事はこちら↓

④問題に回答しよう

Scratchで4択クイズを作ろう ④問題に回答しよう
Scratchで4択クイズのプログラミングの方法を画像付きで解説しています。今回はクイズに回答するプログラムを作っていきます。選択肢をクリックしたら、正解・不正解を判定するようにプログラミングしていきます。

4択クイズを作ろう トップ記事はこちら↓

4択クイズを作ろうトップ記事

Scratchで4択クイズを作ろう
Scratchで4択クイズのプログラミングの方法を画像付きで解説しています。ゲームを作成しながらプログラミングを体験してみよう。

おすすめ

Scratchでのプログラミング学習におすすめの書籍です。

コメント

タイトルとURLをコピーしました