概要
スペースキーでキャラクターを操作して障害物を避けていく、という非常にシンプルなゲーム制作の教材です。
Scratchの操作方法に慣れることを目的としていますので、気軽な気持ちで挑戦してみましょう。
まずは、Scratch Desctopを開いて、新しいプロジェクトをスタートさせます。
すでにScratch Desctopを開いている場合は、上部メニューより [File > New] で新しいプロジェクトを開始できます。
ゲームの主人公の設定
最初に、ゲームの主人公となるキャラクターを設定しましょう。
Scratchでは画面上を動くキャラクターを「スプライト」と呼びます。
新しくプロジェクトを開始するとネコのスプライトが自動的にセットされていますので、こちらはゴミ箱ボタンをクリックして削除します。
スプライトの追加ボタンを押すと、Scratchで用意されているたくさんのスプライトから好きなものを選んで追加できます。
このゲームは、操作するキャラクターが左から右に飛んで行くようなゲームですので、何か空を飛ぶような見た目のものを選んでみましょう。

最初のプログラム

良い感じのキャラクターが見つかりましたか?
この教材では、飛んでいるネコのキャラクターを使って進めて行きます。
Scratchでは、それぞれのキャラクターに対してプログラムを設定していきます。
作業エリア上部にあるタブを「Code」に切り替えると、プログラムが書けるようになります。

画面左のブロックのリストからドラッグ&ドロップして、下記のようなプログラムを作ってみましょう。
ブロック同士は近づけてドロップすると、互いにくっつきますので、3つのブロックが下記のように一塊になっていることを確認してください。

緑色の旗のブロックは、プログラムの開始点になります。
緑色の旗をクリックしてプログラムを開始すると、このブロックから処理が進んでいきます。
次のブロック「forever」は繰り返しです。中に挟まっているブロック「change y by 10」をプログラムが終了するまで、ずっと繰り返します。
それでは、緑色の旗をクリックしてプログラムを実行してみましょう。
どんなことが起きましたか?
選んだスプライトが、画面の上にあがっていけば大成功です!
スプライトのコントロール
次に、このスプライトをキーボードでコントロールしてみます。
先程書いたプログラムを、下記のように変更してください。
少し複雑になりましたが、落ち着いて作業するときっとできます。

「if then」ブロックと「key space pressed?」ブロックを組み合わせるところは、ダイヤモンドの形の穴に、ダイヤモンドの形のブロックがはまりますので、水色のブロックを穴に近づけてドロップしてください。

プログラムの変更が終わったら、緑色の旗をクリックしてプログラムを動かしてみてください。
今度は、キーボードのスペースキーを押したときだけスプライトが上にあがっていき、離すと下に落ちるようになるはずです。
障害物を用意する
引き続き、障害物となるスプライトを用意します。
障害物は、ペイント機能を使ってスプライトを自分でデザインします。
スプライトの追加ボタンにマウスを当てると、Paintボタンが現れますので、こちらをクリックします。
間違って、スプライトの選択画面が開いてしまった場合は、Backボタンで戻ってやり直してください。

ペイント機能では、Rectangle(長方形)の描画機能を使って、描画エリアいっぱいの縦長の長方形を描いてください。
色は自由に変えることができるので、好きな色を使ってみましょう。

障害物を動かそう

続いて、障害物が動くようにプログラミングをしてみましょう。
作業エリア上部にあるタブを「Code」に切り替えると、プログラムが書けるようになります。

下記のように、障害物のスプライトにプログラムをセットしてください。
プログラムのセットが終わったら、作ったプログラムを動かしてみましょう。
このプログラムは緑色の旗ブロックからスタートしていませんので、緑の旗をクリックして実行することができません。
代わりに、「when I start as a clone」のブロックをクリックしてプログラムを実行してみましょう。
障害物が右から左に流れてきたら、大成功です。

実際のゲームでは、障害物は勝手に流れてきて欲しいので、そのプログラミングをします。
同じ障害物のスプライトの中に、下記のプログラムをセットしてみましょう。
今度は、緑の旗をクリックすると、障害物が連続して流れてくるようになります。

障害物にぶつかったら?

この時点では、主人公のスプライトと障害物がぶつかっても何も起きません。
作ったプログラムが遊べるゲームになるように、主人公と障害物がぶつかったらゲームオーバー(プログラムが停止する)となるようにしてみましょう。
主人公のスプライトをクリックして、すでに設定されているプログラムに下記の赤枠のプログラムを追加してください。
「touching Sprite1」の部分は、同じブロックが見つからないかも知れません。
その場合は「touching ○○」ブロックを探して、その上の小さな三角形をクリックして「Sprite1」を探してみてください。

プログラムの追加が上手くいくと、主人公が障害物にぶつかるとプログラムが停止するようになります。
スコアをカウントしよう
さらにゲームのスコアを付けてみましょう。
このゲームでは長く進むほど多くスコアがもらえるようにしてみます。
プログラミングでは何かを数えたり、記録しておいたりするのに「変数」を使います。
ScratchではVariablesブロックが用意されていますので、「Make a Variable」をクリックして新しい変数「score」を作成してみましょう。

変数を作成すると、その変数に値をセットしたり、変更したりするVariableブロックが使えるようになります。
主人公のスプライトに、下記のように1秒おきにscoreを1ずつ増やしていくプログラムをセットすると、ゲームのスコアをカウントできるようになります。

背景をセットしてゲーム完成です!
最後に背景をセットします。
画面右下のBackdropの選択ボタンを押して、好きな背景を選択しましょう。

これで最初のゲームが完成しました!
よく頑張りましたね。
ゲームが簡単すぎたり、難しすぎたりしたら、障害物の流れる速さや出てくる間隔を調整してみましょう。
