【オンライン講座+作り方解説】スクラッチ(Scratch)で「ゾンビを素手で倒すゲーム」を作ろう!

KIDSPROは、オンライン講座を01/27(土)、01/28(日)に実施します。
今回は、Scratch(スクラッチ)による「ゾンビを素手で倒すゲーム」の作り方を解説します。

スクラッチ(Scratch)で「ゾンビを素手で倒すゲーム」を作ろう!

スクラッチ(Scratch)の(()を()で割ったあまり)値ブロックによる特定の連続するコスチューム番号を繰り返すやり方、(()から()までの乱数)値ブロックによる1/2(50%)の確率で特定のアクションを実行させるやり方を解説します。

 

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

完成版のゾンビを素手で倒すゲーム

ゲームのやり方

【キーボード操作】
移動:左右矢印キー、アタック:スペースキー

【マウス操作】
移動:プレイヤーの左右をタップ、アタック:プレイヤーをタップ

※オンラン授業用のゾンビを素手で倒すゲームのテンプレート(プレイヤーとゾンビのスクリプトが未完成)は、https://scratch.mit.edu/projects/954965523を利用してください。

タイトル:titleのスクリプト

タイトル:titleスプライトのコスチューム

タイトルのスクリプト

旗🏴をクリックするとタイトルのスプライトがステージに表示され、スペースキーかマウスクリック(タップ)すると音が鳴り「START」メッセージを送信し、ステージから姿を消す。

プレイヤー:playerのスクリプト

プレイヤー:playerのコスチューム

プレイヤー:playerスプライトは、 の7つのコスチュームを持っている。

下記のように走るアニメーション用のコスチューム(コスチューム番号1~3)が3つ、アタックアニメーション用のコスチューム(コスチューム番号4~6)が3つ、停止している時用のコスチューム(コスチューム番号7)が1つある。

 

プレイヤーの初期設定

旗🏴をクリックするとプレイヤーはステージから姿を消し、変数「cnt」の値を「0」にリセットし、ステージから見えていな状態だが、他のスプライトよりも最背面にし、大きさを50%、X座標=0、Y座標=-70とし、回転方法を左右のみにする。

※変数「cnt」はプレイヤー:playerスプライトのみが読み書きできるローカル変数として生成しています。

グローバル変数とローカル変数について

1. グローバル変数

2. ローカル変数

  1. 新しい変数を作るときに「すべてのスプライト用」を選ぶと、その変数はグローバル変数となる。グローバル変数は、すべてのスプライトやステージから読み書きができる。
  2. 新しい変数を作るときに「このスプライトのみ」を選ぶと、その変数はローカル変数となる。変数を作ったスプライトのみが読み書きができる。他のスプライトやステージから書き込むことは出来ないが、調べるカテゴリーのを使えば読み取ることはできる。
    また、ローカル変数はクローン毎に別々の値を保持できるので、クローンを使ったプログラムには有益です。

 

「スタート」メッセージを受け取ったとき

パソコンユーザによるキーボード操作にも、タブレットユーザによるタップ操作にも対応したプレイヤー操作用のスクリプトとなっている。

  1. パソコンユーザによるキーボード操作
    右矢印キーを押したらカスタムブロック「右移動」が実行され、左矢印キーを押したらカスタムブロック「左移動」、スペースキーを押したらカスタムブロック「アタック」が実行される。
  2. タブレットユーザによるタップ操作
    マウスクリック(画面タップ)したときに、プレイヤー:playerがマウスのポインターに触れた(player自体をタップした)ときカスタムブロック「アタック」が実行され、マウスのX座標(タップした場所のX座標)がプレイヤー:playerのX座標よりも右側だったらカスタムブロック「右移動」が、左側だったらカスタムブロック「左移動」が実行される。
  3. 右左スペースキーが押されていない、または画面をタップされていないとき、プレイヤー:playerのコスチュームはになる。
カスタムブロックを作る手順
STEP.1

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

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

STEP.2

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

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

カスタムブロック「右移動」「左移動」スクリプト
  1. このカスタムブロックが実行されると、プレイヤー:playerは右または左を向き4ピクせずずつ動く。
  2. コスチュームをコスチューム番号=(1+(ローカル変数「cnt」を3で割った余り))にする。
    ※プレイヤー:playerは動き以外のコスチュームを複数持っていて、動き用のコスチューム番号1, 2, 3だけ繰り返し使用したい場合には、割った余り(モジュロ演算)を使います。変数「cut」の値は右矢印キーを押す度に増え続けますが、(「cnt」を3で割った余り)は「cnt」の値がいかなる値になっても、0, 1, 2の何れかの値となります。その値に「1」を加えて「cnt」の値を1ずつ増やせば、プレイヤー:playerのコスチュームは、 が順番に繰り返されて走っているように見えます。
  3. ローカル変数「cnt」の値を「1」増やして、音を鳴らす。

カスタムブロック「アタック」スクリプト

このカスタムブロックが実行されると、音を鳴らしプレイヤー:playerのコスチュームはとなる。その後「0.1」秒間隔でからに変わり、殴るようなアニメションになる。

ゾンビ:zombieのスクリプト

ゾンビ:zombieのコスチューム

ゾンビ:zombieスプライトは、 の10つのコスチュームを持っている。

下記のように歩くアニメーション用のコスチューム(コスチューム番号1~8)が8つ、倒されたアニメーション用のコスチューム(コスチューム番号9~10)が2つある。

ゾンビの初期設定

旗🏴をクリックするとゾンビはステージから姿を消し、回転方法を左右のみにして大きさを40%にする。

「START」メッセージを受け取ったとき
  1. 以下の処理2-3を10回繰り返す。
  2. 「START」メッセージを受け取ると、ゾンビ:zombieはX座標を「-200」から「200」の何れか、Y座標=-125に瞬間移動した後に、自分自身のクローンを作る。
  3. 「5」秒間、スクリプトの実行をストップする。
    ※このスクリプトのにより、5秒間隔でゾンビのクローンが生成されます。

クローンされたときのスクリプト1

このスクリプトにより、ゾンビのクローンは左右どちらかに動き続ける。

  1. ローカル変数「cnt」を「0」に゙リセットする。
    ※変数「cnt」をグローバル変数として生成して、プレイヤー:playerスプライトとゾンビ:zombieスプライトで共有して使用してしまうとプログラムが正しく動かないので注意してください。変数を生成する際には、必ず「このスプライトのみ」のラジオボタンにチェックを入れてローカル変数として生成してください。
  2. ゾンビ:zombie本体は「隠す」ブロックによりステージから消えているため、クローンされたときに「表示する」ブロックよりステージに表示する。
  3. (1から2までの乱数)値ブロックの値が「1」のときゾンビは右を向き、「2」のときは左を向く。
    ※「1」か「2」の何れかを返す乱数の値ブロックの値が「1」ときは真(TRUE)を返し、「2」の時は偽(FALSE)を返す真偽ブロックを作ることにより、1/2(50%)の確率でゾンビ:zombieは右か左を向くようになります。ある確率で、特定のアクションを実行させたいときにこのようなスクリプトを使います。
  4. 処理5-8をずっと繰り返す。
  5. 「()歩動かす」ブロックは、スプライトが向いている方向に動くので、処理3で決定した向きにゾンビ:zombieは動き続ける。
  6. コスチュームをコスチューム番号=(1+(ローカル変数「cnt」を8で割った余り))にする。
    ※ゾンビ:zombieは歩く用以外のコスチュームを複数持っていて、歩く用のコスチューム番号1, 2, 3, 4, 5, 6, 7, 8だけ繰り返し使用したい場合には、割った余り(モジュロ演算)を使います。変数「cut」の値は右矢印キーを押す度に増え続けますが、(「cnt」を8で割った余り)は「cnt」の値がいかなる値になっても、0, 1, 2, 3, 4, 5, 6, 7の何れかの値となります。その値に「1」を加えて「cnt」の値を1ずつ増やせば、プレイヤー:playerのコスチュームは、 が順番に繰り返されて歩いているように見えます。
  7. ローカル変数「cnt」の値を「1」増やして、音を鳴らし、もしも端についたら跳ね返る。
  8. 「0.1」秒だけスクリプトの実行をストップする。

クローンされたときのスクリプト2

このスクリプトは、ゾンビのクローンと攻撃状態のプレイヤー:playerとの当たり判定を行う。

  1. プレイヤー:playerに触れてかつ、赤色に触れたまで待つ(<赤色に触れた>真偽ブロックだけでも可)。
    ※<赤色に触れた>真偽ブロックの赤は、プレイヤー:playerのコスチュームにだけある赤色を指定してください(スポイトアイコンを使って色をしてしないと動作しないので注意してください)。これにより、プレイヤー:playerが攻撃状態のコスチュームにゾンビのクローンが触れたときだけ、処理2-4の衝突処理のスクリプトが実行されます。
  2. ゾンビのクローンの実行中の他のスクリプト(クローンされたときのスクリプト1:ゾンビ動作)を停止する。
  3. 「0.1」秒間隔で とコスチュームを変えて音を鳴らす。
  4. このクローンを削除する。
Scratch3.0(スクラッチ3.0)とは?

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