SE_BOKUのまとめノート的ブログ

SE_BOKUが知ってること・勉強したこと・考えたことetc

Scratch(スクラッチ)(8)/猫を捕まえろ!ゲームを作る(リスト=配列を使う)

f:id:arakan_no_boku:20200824233948p:plain

目次

猫を捕まえろゲームを作る

猫を捕まえろ!ゲームを作ります。

その中で、変数をまとめて管理できる「リスト」を使います。

用語がわからないときは、以下を参照ください。

arakan-pgm-ai.hatenablog.com

ゲームといっても、動かすと、猫のスプライトがランダムに動き回るので、それをマウスで捕まえるというだけのものです。

うまく捕まえたら、猫が何かセリフを表示するのですが、そのセリフを、つかまるたびにランダムに変わるようにリスト(配列)を使ってみます。。

f:id:arakan_no_boku:20201006203711p:plain

スクリプト:リスト(配列)を作ってセリフをセットする

 リスト(配列)は複数のデータをまとめて扱えるものです。

例えば、リスト01という名前のリストに「あいたた・・」とか、5つの文字列をセットしておいて、「リスト01の2番目を取り出す」とすると「捕まって..」の文字列をとりだせる・・みたいなもんだと思えばいいです。

f:id:arakan_no_boku:20201001224517p:plain

リストを作るには、変数ブロックパレットの「リストを作る」ボタンを使います。

f:id:arakan_no_boku:20201001223603p:plain

 押すと、以下のようなダイアログが開くので、とりあえず名前だけ登録します。

f:id:arakan_no_boku:20201001002453p:plain

リストを作ると、ブロックパレットにリストを操作するブロックが追加されます。 

f:id:arakan_no_boku:20201001003627p:plain

これらのブロックを使って、リストにデータを追加したり、削除したり、取り出したり・・とか、いろんな操作をするわけです。 

今回は、リストに以下の5つの言葉をセットします。

  • あいたたた!
  • 捕まってしまった!
  • やられた・・・!
  • 何するんだよ!!
  • こいつはまいった!!
スクリプト:フラグを使ってループを抜けるのがポイント

緑の旗を押されたら開始します。

まず、スプライトを中心(0,0)にして、右向きのデフォルトに戻してます。

フラグという変数は、ループを抜けるのに使います。

初期値を0にしておいて、1になるまで繰り返し動き続けるというわけです。

5つの言葉は、いったんリストを全削除してから、順番にセットしてます。

f:id:arakan_no_boku:20201001224821p:plain

で。

スプライトが押されたとき・・猫がマウスで捕まった時ですね・・に、どの言葉を表示するかを決めるために、1から5の範囲で乱数を取得し、フラグを1にするわけです。 

f:id:arakan_no_boku:20201001224910p:plain

こうすることで、止まります。

このループの抜け方は、結構応用が利きます。

ループを止めるのに制御ブロックパレットにある「すべてを止める」を使う手もありますが、これだとスクリプトを止めてしまうので、吹き出しが表示されませんのでね。

ループをとめて、引き続き何かをさせる場合には、今回のフラグのような変数の値をストップ条件にするわけです。 

 

プロジェクトを公開してます

 プロジェクトを以下URLで公開してます。

https://scratch.mit.edu/projects/431426127

f:id:arakan_no_boku:20201006210917p:plain

 

動かしてみたり、中を見るでスクリプトを表示してください。

今回はこんなところで。

scratchの他の記事一覧はこちらです。

arakan-pgm-ai.hatenablog.com

ではでは、