【オンライン講座+作り方解説】ゼロから学ぼうScratch(スクラッチ)プログラミング2時間目:敵キャラの動かし方10種!

KIDSPROは、オンライン講座を04/27(土)、04/28(日)に実施します。
4月よりスタートした、ゼロから学ぼうScratch(スクラッチ)プログラミング2時間目をアップ!敵キャラの動かし方10種を解説します。タブレットにも対応しています

【2時間目】ゼロから学ぼうScratch:敵キャラの動かし方10種!

今回は、敵キャラを動かすスクリプト10種類を解説します。

 

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

【2時間目】ゼロから学ぼうScratch:敵キャラの動かし方10種!

ゲームのやり方

敵キャラの動かし方10種!
※プレイヤーのネコは、ずっとマウスポインターについて行く様になっています。
※右下リセットボタン:毎回リセットしないと複数スクリプトが動いてしまうので注意してください。

1:敵キャラが1秒毎にランダムな場所に瞬間移動する
2:敵キャラが1秒間かけてランダムな場所に移動する、を繰り返す
3:敵キャラが1秒間かけてネコに向かって移動する、を1、2、3秒のいずれかの間隔で繰り返す
4:敵キャラが1秒間かけてX軸方向(横方向)のランダムな場所に移動する、を繰り返す
5:敵キャラが1秒間かけてY軸方向(縦方向)のランダムな場所に移動する、を繰り返す
6:敵キャラがネコを追いかけ続ける
7:敵キャラがネコの方向に照準を合わせ、その方向に150~200ピクセル移動した後に1秒止まる、を繰り返す
8:敵キャラがランダムな方向を向き、10歩動き端にぶつかったら跳ね返る、を繰り返す。
9:敵キャラがステージの上のどこかに現れ、Y座標が-170以下になるまで下方向に移動する、を繰り返す。
0:敵キャラがステージの左側のどこかに現れ、X座標が230以上になるまで右方向に移動する、を繰り返す。

※学習用のScratchテンプレート(スクリプトが未完成)は、https://scratch.mit.edu/projects/1005820086を利用してください。

【2時間目】ゼロから学ぼうScratch:敵キャラの動かし方10種!の解説

初期設定のスクリプト

旗🏴をクリックすると、敵キャラはX座標=「0」Y座標=「0」に瞬間移動し、左に向く。

リセットのスクリプト
  1. 「リセット」メッセージを受け取ったとき、スプライトの他のスクリプトを止める。
    リセット:スプライトをクリック(タップ)すると、「リセット」メッセージがすべてのスプライトとステージに送信されます。また、「スプライトの他のスクリプトを止める」ブロックが実行されると、同じスプライト内の実行中のスクリプトが停止します。
  2. 敵キャラはX座標=「0」Y座標=「0」に瞬間移動し、左に向く。

動かし方1:敵キャラが1秒毎にランダムな場所に瞬間移動する

敵キャラを1秒毎にランダムな場所に瞬間移動させるやり方
  1. 処理2-3をずっと繰り返す
  2. 敵キャラは、ステージのどこかの場所に瞬間移動する
  3. 1秒間スクリプトの実行をストップ

敵キャラは、ステージのどこかに瞬間移動し、1秒待ってからまたステージのどこかに瞬間移動するようになります。

このプロジェクトでは、をクリック(タップ)すると、のコスチューム名である「1」メッセージが送信され、このスクリプトが実行されます。

動かし方2:敵キャラが1秒間かけてランダムな場所に移動するを繰り返す

敵キャラを1秒間かけてランダムな場所に移動させ続けるやり方

敵キャラは、1秒間かけてステージのどこかの場所に移動する処理を繰り返す。

このプロジェクトでは、をクリック(タップ)すると、のコスチューム名である「2」メッセージが送信され、このスクリプトが実行されます。

動かし方3:敵キャラが1秒間かけてネコに向かって移動する動作を1、2、3秒のいずれかの間隔で繰り返す

敵キャラを1秒間かけてネコに向かって移動させる動作を1、2、3秒のいずれかの間隔で繰り返すやり方
  1. 処理2-3をずっと繰り返す
  2. 敵キャラは、1秒間かけてこのブロックを実行する直前にいたplayerの場所に移動する
  3. 1、2、3秒のいずれかの時間、スクリプトの実行をストップ

敵キャラは、1秒間かけてplayerに向かって移動します。もしも、敵キャラの移動中にplayerネコが別の場所に移動(逃げた)場合、1~3秒のいずれかの時間待ってから1秒間かけてplayerネコに向かって移動します。

このプロジェクトでは、をクリック(タップ)すると、のコスチューム名である「3」メッセージが送信され、このスクリプトが実行されます。

動かし方4:敵キャラが1秒間かけてX軸方向(横方向)のランダムな場所に移動するを繰り返す

敵キャラを1秒間かけてX軸方向(横方向)のランダムな場所に移動させる動作を繰り返すやり方

敵キャラは、1秒間かけてX座標(横方向)は-230~230のいずれか、Y座標(縦方向)はY座標=0(ステージの縦方向の中心点)に移動する処理を繰り返す。

Y座標の値(引数)を変更すれば敵キャラが左右に移動する場所(高さ)を変えることもできます。例えばY座標の値を「150」にすれば敵キャラはステージの上の方で左右に動くようになり、Y座標の値を「-150」にすれば敵キャラはステージの下の方で左右に動くようになります。

このプロジェクトでは、をクリック(タップ)すると、のコスチューム名である「4」メッセージが送信され、このスクリプトが実行されます。

動かし方5:敵キャラが1秒間かけてX軸方向(横方向)のランダムな場所に移動するを繰り返す

敵キャラを1秒間かけてY軸方向(縦方向)のランダムな場所に移動させる動作を繰り返すやり方

敵キャラは、1秒間かけてX座標(横方向)はX座標=0(ステージの横方向の中心点)、Y座標(縦方向)は-170~170に移動する処理を繰り返す。

X座標の値(引数)を変更すれば敵キャラが上下に移動する場所(横の位置)を変えることもできます。例えばX座標の値を「200」にすれば敵キャラはステージの右の方で上下に動くようになり、X座標の値を「-200」にすれば敵キャラはステージの左の方で上下に動くようになります。

このプロジェクトでは、をクリック(タップ)すると、のコスチューム名である「5」メッセージが送信され、このスクリプトが実行されます。

動か方6:敵キャラがネコを追いかけ続ける

敵キャラがネコを追いかけ続けるやり方
  1. 処理2-3をずっと繰り返す
  2. 敵キャラはplayerの方向を向く
  3. 敵キャラの向いている方向に4ピクセル動く

「()歩動かす」ブロックはスプライトの向いている方向に引数で指定した引数値だけ移動するので、このスクリプトでは敵キャラがplayerを追いかけ続けるようになります。例では引数を「4」にしていますが、この値を大きくすれば敵キャラのスピードが早くなり、この値を小さくすると敵キャラのスピードはゆっくりになります。

 

このプロジェクトでは、をクリック(タップ)すると、のコスチューム名である「6」メッセージが送信され、このスクリプトが実行されます。

動かし方7:敵キャラがネコの方向に照準を合わせ、その方向に150~200ピクセル移動した後に1秒止まるを繰り返す

敵キャラがネコの方向に照準を合わせ、その方向に150~200ピクセル移動した後に1秒止まる動作を繰り返すやり方
  1. 処理2-4をずっと繰り返す
  2. 敵キャラはplayerの方向を向く
  3. 敵キャラの向いている方向に10ピクセル動き、もしもステージの端にぶつかったら跳ね返る動作を15~20のいずれかの回数繰り返す
  4. スクリプトの実行を1秒ストップする

「()歩動かす」ブロックはスプライトの向いている方向に引数で指定した引数値だけ移動するので、このスクリプトでは敵キャラがplayerを追いかける動作を少しの間(150~200ピクセル)続け、1秒間ストップする動作を繰り返します

このプロジェクトでは、をクリック(タップ)すると、のコスチューム名である「7」メッセージが送信され、このスクリプトが実行されます。

動かし方8:敵キャラがランダムな方向を向き、10歩動き端にぶつかったら跳ね返るを繰り返す

敵キャラがランダムな方向を向き、10歩動き端にぶつかったら跳ね返る動作を繰り返すやり方
  1. 敵キャラは、ステージのいずれかの方向を向く
    ※Scratch(スクラッチ)では、上方向が0度、右方向が90度、下方向が180度です。左方向は-90度となっており、右側はプラスの値、左側はマイナスの値となっています。「(-180から180までの乱数)度に向ける」ブロックを実行すると、スプライトはいずれかの方向をランダムに向くようになります。
  2. 処理1により向いた方向に、敵キャラは10ピクセルずつ動き続け、ステージの端にぶつかったら跳ね返る

このスクリプトだけですと、しばらくすると敵キャラの動きを予想できてしまうので、ずっとブロックの中に何らかの条件文を追加して、その条件が成立したら「(-180から180までの乱数)度に向ける」を実行して敵キャラの向きを変えたりしても良いかと思います。

このプロジェクトでは、をクリック(タップ)すると、のコスチューム名である「8」メッセージが送信され、このスクリプトが実行されます。

動かし方9:敵キャラがステージの上のどこかに現れ、Y座標が-170以下になるまで下方向に移動するを繰り返す

敵キャラがステージの上のどこかに現れ、Y座標が-170以下になるまで下方向に移動する動作を繰り返すやり方
  1. 敵キャラは、X座標(横方向)は-200~200のいずれか、Y座標(縦方向)はY座標=180(ステージの縦方向の上部)に瞬間移動する
  2. Y座標を-10ずつ変え、Y座標が-170よりも小さくなったら、X座標(横方向)は-200~200のいずれか、Y座標(縦方向)はY座標=180(ステージの縦方向の上部)に瞬間移動する動作を繰り返す

敵キャラはステージの上の方で左右いずれかの場所に現れ、下方向に移動し続け、ステージ下まで来たらステージ上の左右いずれかの場所にまた現れ下方向に移動するようになります。「もし(Y座標)< -170なら」条件文ブロックの中に待つブロックを連結すれば、敵キャラがステージに現れるタイミングを変えることができます。

※スクリプトが正しく動かない人は、以下の4点を確認してみて下さい。

  1. 真偽ブロックの「<:小なり記号」と「>:大なり記号」に間違いはないか?
  2. 引数である数値のマイナスとプラスは間違いないか?
  3. 引数である数値は半角文字になっているか?
  4. 条件文の入っている位置は正しいか?

このプロジェクトでは、をクリック(タップ)すると、のコスチューム名である「9」メッセージが送信され、このスクリプトが実行されます。

操作方法10:敵キャラがステージの左側のどこかに現れ、X座標が230以上になるまで右方向に移動するを繰り返す

敵キャラがステージの左側のどこかに現れ、X座標が230以上になるまで右方向に移動する動作を繰り返すやり方
  1. 敵キャラは、X座標(横方向)はX座標=-240(ステージの横方向の左側)、Y座標(縦方向)は-150~150のいずれかに瞬間移動する
  2. X座標を10ずつ変え、X座標が230よりも大きくなったら、X座標(横方向)はX座標=-240(ステージの横方向の左側)、Y座標(縦方向)は-150~150のいずれかに瞬間移動する動作を繰り返す

敵キャラはステージの左側で上下いずれかの場所に現れ、右方向に移動し続け、ステージ右端まで来たらステージ左側で上下いずれかの場所にまた現れ右方向に移動するようになります。「もし(X座標)> 230なら」条件文ブロックの中に待つブロックを連結すれば、敵キャラがステージに現れるタイミングを変えることができます。

※スクリプトが正しく動かない人は、以下の4点を確認してみて下さい。

  1. 真偽ブロックの「<:小なり記号」と「>:大なり記号」に間違いはないか?
  2. 引数である数値のマイナスとプラスは間違いないか?
  3. 引数である数値は半角文字になっているか?
  4. 条件文の入っている位置は正しいか?

このプロジェクトでは、をクリック(タップ)すると、のコスチューム名である「0」メッセージが送信され、このスクリプトが実行されます。

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

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