「迷路ゲーム」のプログラミング解説
こちらでは、初心者用プロジェクトゲームカテゴリの「迷路ゲームのスターター」について、どのようにプログラミングされているかを詳しく解説していきます。
1. 初心者用プロジェクをダウンロード
まずは、Scratchコミュニティーサイトで公開されている初心者用プロジェクをダウンロードします。ダウンロードする方法は、以下で紹介していますのでそちらからダウンロードしてください。
①Scratchサポート教材のダウンロードページへアクセスします。
し「Maze Starter.sb2」をスクラッチに読み込む作業から解説していきます。下記の「Scratchサポート教材」をクリックするとScratchサポート教材のダウンロードページが開きます。
②Starter Prohectsの「Download」をクリックします。
Scratchサポート教材のダウンロードページにアクセスしたらSupport Materialsの項目にあるStarter Prohects(スタータープロジェクト)の「Download」をクリックします。日本語表記の場合は、サポート素材の項目にあるスタータープロジェクトの「ダウンロード」をクリックします。

③ダウンロードが完了したら「Scratch2StarterProjects.zip」を実行します。
ダウンロードが完了するとGoogleクロームの場合、ブラウザーの左下にダウンロードされたzipファイルが表示されます。「Scratch2StarterProjects.zip」をクリックすると圧縮ファイルが解凍処理されフォルダが開きます。

④「Scratch2StarterProjects」フォルダの中身を確認します。
圧縮ファイルが解凍処理されるとフォルダが開きます。

フォルダの中身は以下のようなフォルダ構成となっており、それぞれのフォルダをダブルクリックするとスクラッチのファイル(***.sb2)が格納されています。今回は、こちらの1つを実際に取り込んでみて動作を確認していきます。
ちなみに、「.sb2」の拡張子は「Scratch2.0」用で、「Scratch1.4」用の場合は「.sb」になります。こちらのファイルは全て「Scratch2.0」用ですので、「Scratch1.4」では起動することができません。
- __MACOSX
- Animation
- Games
- Interactive Art
- Music and Dance
- Stories
- Video Sensing (webcam)
⑤「Scratch 2.0オンライン版」を起動させます。
下記の「Scratch 2.0オンライン版」をクリックすると「Scratch 2.0オンライン版」が表示されます。基本的には「Scratch 2.0オンライン版」で解説していきますが、「Scratch 2.0オフライン版」でも同様の流れになります。ただし、上記でも説明したように「Scratch 1.4」では開くことができません。
⑥「ファイル」>「手元のコンピューターからアップロード」をクリックします。
ツールバーの「ファイル」から「手元のコンピューターからアップロード」をクリックします。日本語表記になっていない場合は、言語を変更する必要がありますので、「スクラッチ言語変更」から言語変更してください。

⑦「Maze Starter.sb2」ファイルを選択し、「開く」をクリックします。
ファイルを開くダイアログボックスが表示されたら、先ほどダウンロードした「Scratch2StarterProjects」フォルダの「Games」>「Maze Starter.sb2」を選択し、「開く」をクリックします。

⑧「OK」をクリックします。
既存プロジェクトと置き換えるかのメッセージボックスが表示されたら、「OK」をクリックします。これで準備が完了しました。

⑨取り込みが完了したら、「緑の旗マーク」をクリックするとゲームがスタートします。
「Maze Starter.sb2」の取り込みが完了したら、迷路ゲームが表示されます。左上の「ステージ」が作品(プロジェクト)画面になります。こちらの「緑の旗マーク」をクリックするとゲームがスタートします。

⑩カーソルキー(↑→↓←キー)で操作し、ゴールを目指します。
ゲームの遊び方はカーソルキー(↑→↓←キー)を操作してオレンジ色のボールを移動させ、緑色のボックスがあるゴールまで目指すというものです。青色の部分は壁となっており、通り抜けできないようなプログラミングされています。
また、ボックスにボールが触れると「You win!」というメッセージが表示されゴールとなります。
どのような動作をするのかだいたい把握したところで、実際にどのようにプログラミングされているのか見ていきましょう。

「Maze Starter」プログラミングの解説
こちらでは、まず「Maze Starter.sb2」で利用されているスプライトと背景を確認してから、それぞれのオブジェクトにどのようなプログラミングがされているのかを1つ1つ解説していきます。
スプライト・背景の確認
「Maze Starter.sb2」では、2つのスプライトと2つの背景で構成されています。
スプライト
スプライトは以下の2つが設定されています。
- Ball
- Goal
「Ball」スプライトは迷路を実際に体験する対象そのもので、向きは「180度」、回転の種類は「自由に回転」に設定されています。コスチュームを確認すると「costume1」が1つだけで音の設定は特にありません。

「Goal」スプライトは迷路のゴールになります。向きは「90度」、回転の種類は「自由に回転」に設定されています。コスチュームを確認すると「costume2」が1つだけで音は「meow」が設定されていますが、実際に音の「meow」はスクリプト(ブロックの塊)には利用されていません。

背景
続いて背景を確認すると以下の2つが設定されています。
- backdrop1
- backdrop2
「backdrop1」は白地のなにもない背景ですが、こちらは利用されていません。

「backdrop2」は青い壁の迷路が描かれている背景になります。こちらの青い部分に触れると通れないようなプログラミングがされているため、迷路としての機能を果たしています。また、音で「pop」が設定されていますが、こちらは利用されていません。

プログラミングの確認
今回の「迷路ゲームのスターター」では、「Ball」と「Goal」の2つのスプライトが用意されていますが、両方ともそれぞれスクリプトエリアにプログラムが書かれています。次は、それぞれで設定されているプログラムの中身について見ていきましょう。
「Ball」スプライトのプログラミング
「Ball」には以下の6つのプログラムがスクリプトエリアに配置されています。

プログラミング1

「イベント」スクリプトの「緑の旗マークがクリックされたとき」ブロックの下に「動き」スクリプトの「x座標を●、y座標を●にする」ブロックにx座標「-205」、y座標「147」が設定されています。

緑の旗マークをクリックすると「Ball」スプライトがx座標:-205、y座標:147の位置に移動されます。この位置は迷路のスタート地点の位置で迷路ゲームを開始する際にスタート地点へ移動させるためのプログラムになります。
プログラミング2

「イベント」スクリプトの「▼キーが押されたとき」ブロックには、「上向き矢印キー」が設定されています。更に「動き」スクリプトの「▼度に向ける」ブロックと「●歩動かす」ブロックが配置され、「0度に向ける」「10歩動かす」が設定されています。
このプログラムは、上向き矢印(↑)キーが押されたときに「Ball」スプライトの向きが0度、10歩動くプログラムになっています。向きが0度ということはつまり上向きになるということですので、上向き矢印(↑)キーを押すと上に10歩移動することになります。
プログラミング3

「イベント」スクリプトの「下向き矢印キーが押されたとき」ブロックの下に「動き」スクリプトの「180度に向ける」「10歩動かす」が設定されています。これは下向き矢印(↓)キーが押されたときに「Ball」スプライトの向きが180度、10歩動くプログラムになっています。向きが180度ということはつまり下向きになるということですので、下向き矢印(↓)キーを押すと下に10歩移動することになります。
プログラミング4

「イベント」スクリプトの「右向き矢印キーが押されたとき」ブロックの下に「動き」スクリプトの「90度に向ける」「10歩動かす」が設定されています。これは右向き矢印(→)キーが押されたときに「Ball」スプライトの向きが90度、10歩動くプログラムになっています。向きが90度ということはつまり右向きになるということですので、右向き矢印(→)キーを押すと右に10歩移動することになります。
プログラミング5

「イベント」スクリプトの「左向き矢印キーが押されたとき」ブロックの下に「動き」スクリプトの「-90度に向ける」「10歩動かす」が設定されています。これは左向き矢印(←)キーが押されたときに「Ball」スプライトの向きが-90度、10歩動くプログラムになっています。向きが-90度ということはつまり左向きになるということですので、左向き矢印(←)キーを押すと左に10歩移動することになります。
プログラミング6

こちらでは、「イベント」スクリプトの「緑の旗マークがクリックされたとき」ブロックの下に「制御」スクリプトの「ずっと」ブロックが設定されています。これは、緑の旗マークがクリックされたときに「ずっと」ブロック内の処理が常に行われていることになります。
何がプログラムされているか「ずっと」ブロック内を確認すると「制御」スクリプトの「もし◆なら」ブロックが配置され「もし■色に触れたなら-10歩動かす」というプログラムが設定されています。

条件分岐には「調べる」スクリプトの「■色に触れた」ブロックが設定されており、こちらで設定されている色は背景「backdrop2」で描かれている壁の色になります。
こちらの設定では、「Ball」スプライトが背景「backdrop2」で描かれている青い壁に触れると自動的に-10歩下がるプログラムになっています。これにより、壁を通り抜けできないため迷路ゲームとして必要な機能がプログラミングされているのが分かります。
実際に緑の旗マークをクリックして、↑→↓←キーを操作してみると「Ball」スプライトが押された方向へ10歩ずつ進み、青い壁に触れようとすると通り抜けできないようになっているのを確認してみてください。
本来の処理で言えば、一度青い壁に触れてから-10歩つまり10歩下がるという処理になるのですが、プログラム処理が早いため触れた瞬間を目視できず壁に触れているのがなかなか確認できません。

もしも青い壁に触れた瞬間を目視で確認したい場合は、「-10歩動かす」の上に「制御」スクリプトの「●秒待つ」ブロックを配置して「1秒待つ」に設定して実行してみてください。すると青い壁に一度触れてから1秒停止し、-10歩動いているのが確認できるかと思います。

「Goal」スプライトのプログラミング

続いて「Goal」のプログラムを確認していきます。「Goal」には以下の1つのプログラムがプログラミングされています。
プログラミング1

こちらでは、「イベント」スクリプトの「旗マークがクリックされたとき」ブロックの下に「制御」スクリプトの「ずっと」ブロックが設定されています。これは、緑の旗マークがクリックされたときに「ずっと」ブロック内の処理が常に行われていることになります。
何がプログラムされているか「ずっと」ブロック内を確認すると「制御」スクリプトの「もし◆なら」ブロックで「もしBallに触れたならYou win!と言う」が設定されています。
条件分岐には「調べる」スクリプトの「▼に触れた」ブロックが設定されており、こちらで設定されているものは「Ball」スプライトになります。
条件が一致した場合は、「見た目」スクリプトの「□と言う」ブロックで「You win!」のテキストが設定されています。
こちらの設定では、「Goal」スプライトに「Ball」スプライトが触れたら「You win!」というメッセージが表示されるプログラムになっています。
実際にスクラッチゲームで遊んでみよう!
プログラムの中身を理解したら実際に遊んで見ましょう!ひとつひとつの動作がどのようにプログラムされているのかを理解できればそんなに難しいプログラミングではないので、実際に遊びながらどのようにスクラッチでプログラミングされているか確認してください。
まとめ
今回は、「迷路ゲームのスターター」について解説しました。こちらの機能は迷路ゲームの最低限の機能になります。例えば、青い壁に触れると10歩下がるプログラムを「x座標を-205、y座標を147にする」に変更するだけでも壁に少しでも触れたら最初からやり直しと迷路ゲームの難易度が一気にあがります。他にもワープゾーンを設けることで複雑な迷路ゲームにすることができます。
このように新しい機能を追加すればオリジナルのおもしろい迷路ゲームができますので、是非スクラッチでプログラミングに挑戦してみてください。
2. プロジェクト一覧
初心者用プロジェクトは「ゲーム」「アニメーション」「インタラクティブアート」「ストーリー」「webカメラ」の5つのカテゴリでまとめられていますので、プログラミング内容を確認したいプロジェクトをクリックして確認しましょう。
ゲーム
アニメーション
- カニのアニメーション
- ダンスパーティー
- グリーティングカード
- Picoショー
インタラクティブアート
- Goboでペイント
- サウンドフラワー
- スパイラルマーカー
- 魔法使いの呪文
ストーリー
- 自己紹介(5つの事柄)
- Howlerの紹介
- お城のストーリー
- バーチャルツアー
webカメラ
- バブルビデオセンシング
- ミュージカルボタン
- ピザ職人
- ミニフィグを救出