Scratchでサッカーゲームをつくろう!
今回は、有名なスポーツの1つであるサッカーをScratchでつくっていきます。
ルールとしては、5秒後にランダムに飛んでくるボールを、ゴールキーパーである、ねこちゃんを動かしてゴールを阻止するゲームです!いわゆるPK戦ですな!
(わたしは全くサッカーについて詳しくないんで、感覚で作ってまっせー)
イメージはこんな感じ↓
https://scratch.mit.edu/projects/619769240
今回習う単元は、
- 枠の中でスプライトを動かす(色での判別)
- もし〇〇に触れたなら・・の処理
- 乱数の角度に向ける
- 「かつ」の処理
ゴールキーパーの動きを組み立てる
ゴールキーパーを選ぼう
サンプルは、こんな感じで今回はねこちゃんをゴールキーパーにしてます。
みんなは自分の好きなスプライトを選んでね!
ボールを選ぼう
好きなボールを選んでみよう!(以下省略)
背景を選ぼう
背景はサッカーの感じの背景を選ぼう!
全部揃ったかな?
では先に進もう!次は実際にゴールキーパーの動きのコードをつくっていくよ。
いつも通り、文字ベースのヒントから
最初は真ん中にゴールキーパーがスタンバイ。
白色のゴールの端から端までしか動かないように設計(色判別・「かつ」を使用)
白色に触れたらちょっと戻る感じ!
今回は考える時間3分は短いかな・・5分10分考えてみよう!!
ちょっと複雑だったかな?ヒントその2もいくぜー!
矢印キーが押されていて、また白色のゴールの端に触れていないときに動く。
また、白色に触れたら1歩戻る
まず最初は、スタートの座標を指定。
その後、ずっと「回転方向を左右のみにする」を挿入。
もし入れなかったら、ひっくり返ってしまう可能性があるかも(ならない場合もありますが、念のため・・)
次に、もしキーが押された「かつ」白色(ゴールの端の色)に触れたではないなら、
左右に動かすをずっとの中に入れる。
また、もし白色(ゴールの端の色)に触れたなら-1歩動かすを組み立てる。
白色(ゴールの端の色)に当たったら、少し下がることによって、枠の中だけで動くことが可能。
これがないと白色(ゴールの端の色)に触れたら、キーを押しても動かなくなってしまうので、めっちゃ重要!
実際に、白色(ゴールの端の色)の中でしかゴールキーパーは動かないかな?
ボールのコードを組み立てる
今回は、5秒経過したらボールが発射?される感じのコードを組み立てるぜ!
まずは、投げる前と投げた後のコスチュームを描きます。
投げる前はどの方向に飛んでいくか分からないと大変なので、
右クリック+複製をして
「矢印」を描きます。
投げられた後は矢印を消すためいつものコスチュームで大丈夫!
秒数を計測するコードから!
最初の秒数は0で1秒待って1ずつ変数を変える
以前にもずっと、変数は出てきているね。念のため今回も紹介するよ。
補足(ほそく)変数とは?
変数とは、サイコロみたいなものだよ。
「5」みたいに決まった数字ではなく、変化する数字。
例えば、1+1=Aとするとき、A=2だね。
しかし、1+2=Aとなった場合、A=3になる。
こんなふうに、Aが変化する数字のことを変数と言います。
まずは時間の変数を作ります。
変数をつくるをクリック!
(制限)時間と入力→OK!
これで変数が完成!
コードはこんな感じ!
緑の旗が押されたとき、まず制限時間を0にすることでどんな時でも最初からカウント可能!
また、ずっと1ずつ変えることで変数が増えていく。またそれだけだと急激に数字が変わるので「1秒待つ」で待ってあげる!
数字が1秒ずつ増えていくかな?
これでカウントできたぜ!先に進もう。
最初のボールの位置を決めよう
最初のボールの位置を決めるにはどのブロックが必要かな?
x座標を〇〇、y座標を〇〇にするをつけ加える。
これで最初の座標を決められます。
次にコスチュームも指定しておきましょう。
なぜか念のため表示するをはさみましたが、全然なくて大丈夫でっせ。
コスチュームを〇〇(矢印付き)にするを入れます。
次に行きましょう!
5秒経つまでの動作を組み立てる
5秒経ったら、サッカーボールが発射されますが、その前は色々な角度に傾けて
どこに飛んでいくか分からないようにしていきまっせ!
まずはヒントから
5秒経つまで乱数の角度に向けるのを繰り返す
時間=5まで中のコードを繰り返す。
-30〜30までの乱数度に向けるで5秒経つまでどんな角度にするのかを決めます。
-30〜30は仮に入れているので、みんなはいい感じの数字を入れてみてね!
-30〜0は左側・0〜30は右側に傾く角度だよ。
※ちなみにこの時は、矢印が上に向いている状態を0度としていますので、最初の角度によって数字が変わる可能性が高いです。
めまぐるしく5秒間角度が変わっているかな?
先に進もう!
5秒経った後のコードを組み立てよう
5秒間繰り返すの下に5秒以降のコードを組み立てるよ。
まずは、ヒントから
コスチュームを変えて飛んでいく
こんな感じかな?
飛んでいく部分は「〇〇歩動かす」の部分だよ。
x座標やy座標にすると縦や横にしか飛ばないので、せっかく角度を変えても意味がなくなってしまう。
だから今回は「〇〇歩動かす」がバッチリ!
それぞれ当たり判定やはずれ判定を加える
ボールをねこちゃんがキャッチできたら「はずれ」にする+「すべて止める」
ボールをねこちゃんがキャッチできずにゴールしたら「あたり」にする+「すべて止める」
ボールがゴールから外れてしまったら「すべて止める」
この条件はみんなで各自変えてみてね。
ちなみに、わたしはこんな感じに組み立てたよ。
スプライト2はねこちゃんです。
「ずっと」の中に色々な条件(もし・・・なら)を加えていくといいよ!
自分の思い通りに動いたかな?
チャンレンジ
みんなも色々とデザインを作ったり、機能を追加してみたりしてね!
Levelを5段階で分けてます。もし良かったらチャレンジしてね!
- サッカーボールを何回も投げられるようにする(クローンを使ってみよう)(Level3)
クローンの技術は射撃(しゃげき)の弾の部分と同じだよ
- 得点をつける(Level2)
金魚すくいを見ると参考になるかも?
- ゲームクリアやオーバー画面を実装する(Level2)
「もし・・なら」の条件の中に「背景を変えるコード」をいれる