【オンライン講座】Scratch(スクラッチ)で迷路ゲームを作ろう!カスタムブロック(関数)も使おう!

KIDSPROは、オンライン講座を05/13(土)、05/14(日)に実施します。
Scratch(スクラッチ)迷路ゲームの作りながら、カスタムブロック(関数)の使い方も学びます。

Scratch(スクラッチ)で迷路ゲームを作ろう!カスタムブロック(関数)も使おう!

矢印キーでネコを操作して、ゴールを目指す迷路ゲームの作り方を説明します。ゲームを作る過程でカスタムブロック(関数)の使い方も学べます。

 

日時: 2023/05/13(土) & 2023/05/14(日) 17:00 ~ 18:00
場所: オンライン講座
対象: KIDSPROスクール生、KIDSPRO eラーニングをご利用の方
必要なもの: Scratchが使えるパソコン、またはタブレット
費用: 無料

【応用版】迷路ゲーム

ゲームのやり方

矢印キー:ネコの向きを変更

旗にたどり着いたらゴール!

迷路にぶつかると、スタート地点に戻ってしまう。
宝石、家などのアイテムに触れると良いことがあるよ。

 

※スプライトとコスチュームのみの学習用Scratchプロジェクトは、https://scratch.mit.edu/projects/849574250から利用できます。

ネコのスクリプト

初期設定とネコ動作のスクリプト
  1. 変数「ゲーム中」の値を1にして、大きさ20%、X座標-200、Y座標-150、向きを90度(右方向)にする。
    ※変数「ゲーム中」が「1」のときはゲーム中、変数「ゲーム中」が「0」になったらゲームが終了したものと考えてください。
  2. 変数「ゲーム中」の値が0になるまで、処理3を繰り返し実行する。
    ※変数「ゲーム中」が「1」のとき、つまりゲーム中は、ずっと処理3が繰り返し実行される。
  3. カスタムブロック「前進する」「向きを変える」「ネコ当たり判定」を実行する。
カスタムブロックの作り方
STEP.1

①ブロックパレット左下のをクリックする。

②プロックパレット上にが表示されたらクリックする。

STEP.2

③自分の好きな名前を入力する。

④「OK」ボタンをクリックする。

カスタムブロック「前進する」のスクリプト
  1. 変数「スピード」の値分だけ、ネコの向いている方向に進む。
  2. ネコは2つの形が違うコスチュームを持っており、「つぎのコスチュームにする」ブロックを実行時、ネコのコスチュームが1番であれば2番のコスチュームにかわり、2番のコスチュームであれば1番のコスチュームに変わる。
    ※アニメーションの原理で、ネコが走っているように見える。

カスタムブロック「向きを変える」のスクリプト
  1. キーボードの右向き矢印キーを押したら、ネコの向きを90度(右向き)に変える。
  2. キーボードの左向き矢印キーを押したら、ネコの向きを-90度(左向き)に変える。
  3. キーボードの上向き矢印キーを押したら、ネコの向きを0度(上向き)に変える。
  4. キーボードの下向き矢印キーを押したら、ネコの向きを180度(下向き)に変える。
    ※カスタムブロック「前進する」のスクリプトで使用しているは、ネコの向いている方向に引数の値(ここでは10)だけ進むので、カスタムブロック「向きを変える」でネコの向きを変えれば、ネコはその向きの方向に動くことになる。

カスタムブロック「ネコ当たり判定」のスクリプト
  1. ネコが迷路にぶつかったとき、変数「無敵」の値が「0」だったら(無敵モードでないとき)、処理2を実施する。
    ※スプライト「宝石」とネコがぶつかったら、変数「無敵」の値が「1」になるスクリプトを、スプライト「宝石」のプログラミングエリアに作ってある。つまり、ネコが宝石にぶつかったら、変数「無敵」の値は「1」になるので、この真偽条件はFalse(偽)となり、ネコは迷路にぶつかってもスタート地点に戻ることなく進み続ける事ができる。
  2. 終わるまで「Low Boing」の音を鳴らし、ゲームスタート時と同じ場所X座標-200、Y座標-150に瞬間移動し、向きを90度(右方向)にして、最後に「connect」の音を鳴らす。

ネコのスピードを変えるスクリプト
  1. 旗をクリックスルと、変数「スピード」の値を1にする。
  2. 変数「ゲーム中」の値が0になるまで、処理3を繰り返し実行する。
    ※変数「ゲーム中」が「1」のとき、つまりゲーム中は、ずっと処理3が繰り返し実行される。
  3. 10秒待ってから、変数「スピード」の値を0.2ずつ増やす。
    ※カスタムブロック「前進する」のによりネコは動くので、変数「スピード」の値が10秒後には「1.2」、その10秒後には「1.4」と大きくなるにしたがって、ネコのスピードも早くなる。

無敵モードネコのスクリプト
  1. 変数「ゲーム中」の値が0になるまで、処理2を繰り返し実行する。
    ※変数「ゲーム中」が「1」のとき、つまりゲーム中は、ずっと処理2が繰り返し実行される。
  2. もしも、変数「無敵」が「1」なら、色の効果を25ずつ変える。そうでければ元の色のネコに戻す。
    ※変数「無敵」が「1」のとき、つまり無敵モードのとき、ネコのコスチュームの色が変わり続けるようになる。

矢印キーを押したときの音のスクリプト
  1. 変数「ゲーム中」の値が0になるまで、処理2を繰り返し実行する。
    ※変数「ゲーム中」が「1」のとき、つまりゲーム中は、ずっと処理2が繰り返し実行される。
  2. もしも、いずれかのキーを押したとき、終わるまで「Pew」の音を鳴らす。
    ※矢印キーもどれかのキーなので、矢印キーでネコの向きを変える度に「Pew」の音が鳴るようになる。

メッセージtpを受けっ取ったときのスクリプト
  1. メッセージ「tp」をうけとったとき、スプライト「ゴール」に瞬間移動する。
    ※スプライト「ワープ(家マーク)」とネコがぶつかったら、メッセージ「tp」を送信するスクリプトが、スプライト「ワープ」のプログラミングエリアに作ってある。つまり、ネコがワープ(家マーク)にぶつかったら、ネコはスプライト「ゴール」に瞬間移動してゴールすることになる。

 

迷路のスクリプト

スプライト「迷路」のスクリプト
  1. 旗をクリックしたら、X座標0、Y座標0にする。
    ※迷路はステージの背景としてではなく、スプライトとして作っているので座標を持っている。迷路をスプライトとして作った理由は、他のスプライトに対する当たり判定などのプログラムを作りやすいからです。

 

ゴールのスクリプト

スプライト「ゴール」のスクリプト
  1. 旗をクリックしたら、X座標200、Y座標-165になる。
  2. スプライト「ネコ」にぶつかるまで、プログラムの実行を停止する。
  3. 「ネコ」にぶつかったら、変数「ゲーム中」の値を「0」にする。
    ※変数「ゲーム中」が「1」のときはゲーム中、変数「ゲーム中」が「0」になったらゲームが終了したので、「ネコ」が「ゴール」にたどり着いたら変数「ゲーム中」の値を「0」にしてゲームを終了としている。
  4. 終わるまで「Win」の音を鳴らす。

 

宝石のスクリプト

スプライト「宝石」のスクリプト
  1. 変数「無敵」の値を0にして、X座標-4、Y座標20、回転方法を左右のみにしてからステージに表示する。
  2. 処理3-4をずっと繰り返す。
  3. 色の効果を25ずつ変え、向きを90度ずつ変える。
    ※回転方法を左右のみにしているので、左向きと右向きのコスチュームにしか変化しないが、横方向に回転しているように見える効果がある。
  4. もしも、スプライト「ネコ」にぶつかったら、「magic spell」の音を鳴らして、ステージから姿を隠し、変数「無敵」の値を1にして、6秒間待ってから変数「無敵」の値を0にする。
    ※「ネコ」が「宝石」にぶつかると、変数「無敵」の値が6秒間だけ「1」になるので、「ネコ」のプログラミングエリアに作ったカスタムブロック「ネコ当たり判定」の判定がFalse(偽)となり、「ネコ」は迷路にぶつかってもスタート地点に戻らずに迷路をすり抜けることができる。

 

ワープのスクリプト

「ワープ」の見た目を変えるスクリプト
  1. 旗をクリックしたら、X座標150、Y座標100、大きさを50%にする。
  2. 色の効果を50ずつ変え、0.2秒だけ待つ処理をずっと繰り返す。

「ワープ」当たり判定のスクリプト
  1. 旗をクリックしたら、スプライト「ネコ」にふれるまでプログラムの実行をストップする。
  2. スプライト「ネコ」にぶつかったら、変数「ゲーム中」の値を「0」にする。
    ※後の処理4で、メッセージ「tp」を送信すると「ネコ」は「ゴール」に瞬間移動してゲーム終了となるので、「ネコ」のスクリプトが動作しないように、このタイミングで変数「ゲーム中」の値を0にしている。
  3. 終わるまで「Teleport」の音を鳴らす。
  4. メッセージ「tp」を送る。

 

Scratch3.0(スクラッチ3.0)とは?

MITメディアラボにより開発されたビジュアルプログラミング言語。子供たちが物語やゲーム、 アニメーションなどのインタラクティブな作品をプログラミングできる。また、自分の作った作品を世界中の人々と共有できるコミュニティーサイトでもある。世界中で1億人を超えるユーザーがいる。
こちらのホームページにアクセスすれば無料で利用できる。