スクラッチではブロックを組み立てててプログラミングができるので、誰でも簡単に取り組むことができます。
このようにビジュアル的にプログラムを作る事ができるので、世界中でたくさんのお子様のプログラミング入門ソフトとして人気があります。
非常に親しみやすく高機能なプログラミング言語のため、様々なゲームを作る事も可能となっており、たとえば、私がyoutubeで投稿している下記のような動きもスクラッチで実現ができてしまいます。
私が運営しているプログラミング教室でも、たくさんのお子様がゲームを作りたくて受講して頂いていますが、スクラッチの基本操作をマスターしても、いざゲームを作ろうとするとなかなか難しいと感じる子も多いようです。
ところが、基本的なテクニックを教えると、その後は自分の力でも色々工夫をしてゲームを作れるようになります。
今回はゲームを作るときにつまずきやすいポイントや基本テクニックを紹介し、簡単なゲームを作ってみましょう!
1.スクラッチでゲームを作ろうとする時につまずくポイント
いざゲームを作ろうとしても「何から作ったら良いかわからない」という相談を受ける事がよくあります。
ゲームは色々な機能が重なり合って1つのゲームとなっており、機能を分解して考えると比較的簡単に作る始める事ができます。
例としてシューティングゲームの場合で考えてみましょう。(スクラッチ公式サイトで公開しています)
このゲームの必要となる機能を分解すると
・矢印キーでプレーヤーを動かす機能
・スペースキーで弾を発射する機能
・プレーヤーの攻撃(弾)が敵に当たった判定
・敵を動かす機能
・敵が弾を発射する機能
・敵からの攻撃に当たった判定
などが必要となります。
このように分解して考える事ができれば、あとはそれぞれの機能ごとにプログラムを作るだけです。
ゲームを作り始めたばかりの頃は機能分解が難しいかと思いますが、基本的なテクニックを習得しておくことで、必要となる機能の勘所がわかるようになってきます。
2.ゲームを作るための基本的なプログラミングテクニック
ここで紹介するテクニックは、是非実際にプログラムを作って動かしていただくと理解しやすいと思います。
スクラッチでプログラミングするために、公式サイトを開いてプログラミングエディターを開きましょう。
スクラッチ公式サイト(https://scratch.mit.edu/)を開き、「作る」をクリックすると、プログラムを作るためのエディターが開きます。
下記のような画面が表示されたら準備OKです。チュートリアルが表示されている場合は×を押して消しておきましょう。
スプライトを移動
まずは矢印キーでスプライト(キャラクター)を動かせるようにしましょう。
プログラムの流れとしては【矢印キーが押された ⇒ 押された方向に移動する】という仕組みになります。
まずは上向きの矢印キーが押されたときの処理を作ります。
このように作れたら、一度上向き矢印キーを押してみて動く事を確認してください。
問題なければ他のキーも同じ考え方でプログラムを作りましょう。
これで完成です!それぞれのキーを押して動く事を確認しましょう。
ジャンプさせよう
スプライトをジャンプさせるためには【上に進む⇒下に進む】というプログラムになりますが、ゲームの場合、ジャンプの上下の動作と同時に左右に動かす事が多いため、向きを使った動きの場合は注意が必要です。
今回はスペースキーを押した時にジャンプさせます。まずは上に動く部分を作りましょう。
スペースキーが押されたタイミングで、スプライトを上方向に移動させます。
ここで気を付けなければならないので、【ずっと】命令ブロックを使わないようにしてください。【ずっと】を使うと上に移動するのが止まらなくなるので、【〇回繰り返す】命令ブロックを使います。
※ここで使っているy座標とは縦方向の移動の事です。
これで上方向に動かす事ができたので、あとは落下させるだけです。考え方は同じなのですが、y座標を減らす必要があるのでー10ずつ変えます。
完成しました!
先ほど作った矢印キーで動かす機能と合わせて使うことで色々なゲームが作れるようになります。
弾の発射
ここまでのテクニックでスプライトを自在に動かせるようになったので、次はシューティングゲームなどで敵を攻撃する場合などでよく使う弾の発射方法の紹介です。
この場合、プレーヤーとは別に弾のスプライトも用意します。
プログラムがスタートしたタイミングで、弾のスプライトを隠しておきます。
また、発射したときの事を考えて事前に右向きにしておきましょう。
スペースキーが押されたタイミングで、弾をプレーヤー(ネコ)の位置まで移動させます。
スペースキーが押された判断はできたので、あとは弾を表示させて移動します。
端に触れるまで動かしたいので、条件付きで繰り返しましょう。
これで完成です!
すこしややこしいですが、一つずつ命令ブロックの意味を抑えていけば理解できると思います。
当たり判定
次はスプライト同士が当たった判定をつくります。この例では、プレーヤーが敵に当たってゲームオーバーになるプログラムを作ります。
このように、敵に触れた判断を【ずっと】命令ブロックで繰り返しチェックする事がポイントです。
この【ずっと】が抜けてしまう方が非常に多いので注意しましょう。
ちなみに、これはプレーヤーの弾が敵に当たった場合など幅広く使えるテクニックなので、是非理解しておきましょう。
3.基本テクニックで簡単にゲームを作ってみよう
ここまでの基本テクニックをベースに2つゲームを作ってみましょう。
鬼ごっこゲームを作ろう
敵がプレーヤーを追いかけるゲームです。プレーヤーは上下矢印キーで逃げましょう。
敵につかまるとゲームオーバーです。
まずは、スプライトを用意してください。スプライト名は下記の通りに変えておきましょう。
①プレーヤー(ネコ)のプログラム
まず、ネコは上記の基本テクニックで紹介した、矢印キーで動かすプログラム(スプライトを移動)をそのまま使います。
さらに追加で基本テクニックで紹介した当たり判定のプログラムを作りましょう。
なお、スタート時点の場所を設定する命令ブロックを追加してあります。
これでプレーヤー(ネコ)は完成です。次は敵のプログラムを作ります。
②敵のプログラム
敵は常にネコを追いかけるだけのシンプルなプログラムです。考え方としては、ネコの方向に向ける ⇒ 移動する を繰り返す事になります。
これで完成しました!
緑の旗を押して、実際に動かしてみましょう。それぞれの動きの歩数を変えると、難易度を変更することができますよ。
シューティングゲームを作ろう
次はシューティングゲームを作ってみましょう。敵の攻撃を避けて、プレーヤーの弾を敵に当てましょう。
ネコを矢印キーで動かして、スペースキーで弾を発射します。
敵も同じように攻撃してきますので避けましょう。どちらかの弾が当たるとゲーム終了です。
①プレーヤー(ネコ)のプログラム
ネコは鬼ごっこゲームと同じように矢印キーで動く+てきの弾に当たったらゲームオーバーになるプログラムをつくります。
これでプレーヤー(ネコ)は完成です。次はプレーヤーから発射される「たま」のプログラムを作ります。
②たま(プレーヤーの攻撃用)のプログラム
上記で紹介したテクニックと全く同じ内容となります。
③てきのプログラム
てきは上下に動かします。その際に、左向き(ネコの方向)に向ける必要がありますが、回転してしまうため、【回転方法を左右のみにする】を先頭に入れています。
上下に動作する動きは、上記で紹介したジャンプする動きと同じとなります。
④たま(てきの攻撃用)のプログラム
基本的にネコが「たま」を発射するのと考え方は同じですが、発射するキッカケが1秒おきになるのと、ネコに向けて発射する部分が異なります。
これですべて完成しました!!
ここで紹介した内容はベースとなる機能だけなので、色々機能を追加して、自分だけのゲームを作ってみよう!
4.スクラッチ公式サイトをうまく活用しよう
スクラッチ公式サイトでは、世界中の人たちが自身で作ったゲームを公開しています。(スクラッチ公式サイトはこちら)
公開された作品を動かすだけでなく、中身(プログラム)を見ることもできます。
公開されているゲームをリミックスして使えます!
実際に動かして、中身(プログラム)を見ることができるだけでなく、その作品をコピーして自分の機能を追加したり、改造して新たな作品を作る事ができます。
なお、スクラッチにログインしている状態でなければミックスできませんので注意しましょう。
リミックスする方法はとっても簡単です。リミックスしたい作品を検索して開いて、「リミックス」ボタンを押すだけです。
リミックスボタンを押した後、エディターが開きますので、あとは自由に改造するだけでOKです。
プロが選ぶ参考になる人気ゲームを紹介
プログラミング講師である私がおススメな作品を選んでみました。
Youtubeで紹介していますので、是非ご覧ください。
5.スクラッチでゲームプログラミングを学ぶためのおすすめ本
最近は普通の書店でも数多くのスクラッチプログラミングの本が並ぶようになりました。
基本的には入門書が多いのですが、ゲームを作る事を中心にした本もいくつか発売されています。私が愛用している本やおすすめ本をいくつか紹介します。
スクラッチプログラミング事例大全集
簡単なプログラムから学校の教科に対応したプログラム、数ページで完結するゲームなど、テーマ別にサンプルが100例収録されています。
プログラムに対する説明は少し足りない気がする為、初心者の方は完全に理解するのは難しいかもしれませんが、ゲームをたくさん作りながら動作を理解するのに最適です。
アマゾンの販売ページにてサンプルを見ることができます。
Scratch 3.0対応版 10才からはじめるゲームプログラミング図鑑: スクラッチでたのしくまなぶ
この本は、さきほどのスクラッチプログラミング事例大全集とは異なり、1つのゲームにページを割いて丁寧に説明してくれています。
また、ゲームとして重要なテクニックも紹介しており、本格的にゲームを作りたい方はおススメです。
ただし、お子様の場合きっちりと文章を読まなければ、どのスプライトにプログラムを作れば良いかが分からなくなったり、間違えやすい部分があるのですこし注意が必要です。
スクラッチゲームテクニック集
こちらは電子書籍で私が出版している本なのですが、生徒から「先生このスプライトで〇〇やりたい~!」「ここがうまく動かない!!」などの質問に答えるために作った本です。授業でもかなり活躍してくれています。
上記で紹介させていただいたテクニックも、このテクニック集より抜粋しているところが多く、Kindleの電子書籍を利用されている方はおススメです。なお、紙の本は発売されていないのでご了承ください。
リンクはこちら
(サンプル)
スクラッチプログラミングドリル【結合版】
こちらも私が出版している電子書籍で、スクラッチの練習問題などがあまり出版されていないため、制作しました。2ページで1問の構成となっており、手軽に問題にチャレンジすることができます。全50問で、一通り理解することで基礎的な力を身に着けることができます。
リンクはこちら
6.まとめ
今回はスクラッチでゲームを作るためのテクニックや参考となる情報を紹介させていただきました。
「お~スゴイ!」と思うようなゲームでも、一つ一つのプログラムは基本的なテクニックを積み上げて制作されているものが大半です。
今回紹介したテクニックを実際にプログラミングして身に付けて頂き、色々なゲームに応用してみてください。