今回は、キーボードの上下左右キーだけであそべるディグダグ風のシンプルな穴掘りゲームを作っていきます。
このゲームは、スクラッチに標準で備わっているキャラクターとちょっとしたお絵描してつくったコスチューム、それと「ペン」の拡張機能を使ってつくっています。
完成品
完成した動き
ランダムな位置に4羽の「子ペンギン」が地下の横穴に閉じ込められているので、キーボードの上下左右キーをつかって「親ペンギン」をコントロールして「子ペンギン」を助けに行きます。
無事に4羽とも助け出して「親ペンギン」も地上に戻ればクリア、途中で「ゴースト」につかまるとゲームオーバーになります。
使用したスプライト
スプライトは「親ペンギン」「子ペンギン」「ゴースト」の3つです。
いずれのスプライトもScratchにあらかじめ用意されているキャラクターを呼び出して使用しています。
【親ペンギンのスプライト】
「親ペンギン」が掘るための穴をコスチュームで用意します。
コスチュームを追加して円を描きます。その際に枠線はなし(太さを0)にして作成します。
【子ペンギンのスプライト】
「子ペンギン」が閉じ込められている横穴をコスチュームで用意します。
コスチュームを用意して図形を描きます。下の図のようなチューブ形の図形を一度に描ける図形はないので円と長方形を組み合わせて作成します。
左右に円をおいて真ん中に長方形をおきます。さらに長方形の縦線を消す必要がありますが、消しゴムは使わずに、枠線のない長方形を上からかぶせて枠線を見えなくします。(消しゴムをつかって消すと下地が見えてしまいます)
【ゴーストのスプライト】
ゴーストにはコスチュームの追加はありません。読み込んだままの状態で使用します。
完成したスクリプト
完成したスクリプトの全体です。
【親ペンギンのスクリプト】
【子ペンギンのスクリプト】
使用している変数「助けた数」は「すべてのスプライト用」でつくっていますが、「このスプライトのみ」でつくってもOKです。
- 助けた数:すべてのスプライト用 or このスプライトのみ
【ゴーストのスクリプト】
スクリプトの作り方
ここからはプログラムを作っていく中でポイントとなる部分を説明します。
ポイント①:子ペンギンを地中の横穴に閉じ込める
4体の子ペンギンはクローンでつくりますが、手順としては座標を決めたら「横穴」コスチュームのスタンプを押したあと「penguin2-d」コスチュームに切り替えてクローンをつくります。
これを4回繰り返すことで4体の子ペンギンクローンが出来上がります。
子ペンギンのクローンが作られたら、左右に1歩ずつ移動し続けます。
右から左へ、左から右へ方向転換するタイミングは、「横穴の枠線の色に触れたとき」か「親ペンギンが掘った穴の色に触れたとき」です。
ポイント②:親ペンギンを穴掘りしながら移動させる
ゲーム全体として、Y座標が100のときを地上、100未満のときを地中という扱いにしています。
親ペンギンが地上にいる間は、左右に2歩ずつ動き続けます。
下向き矢印キーを押すと地中に移動するので穴を掘り始めます。
穴を掘っているように見える理由は、常に親ペンギンの姿を一瞬だけ「穴」コスチュームにしてすぐにスタンプを押しているためです。
穴のスタンプを押したらすぐにコスチュームを「penguin-b」に戻していて、その状態から上下左右の矢印キーで移動させているので、動いているときのコスチュームはペンギンの姿をしている「peinguin-b」が使われています。
ポイント③:ゲームクリアをつくる
ゲームクリアの条件は、「(助けた数=4)かつ(親ペンギンが地上に戻ったとき)」としています。
「助けた数」変数は、親ペンギンが子ペンギンに触れたら1ずつ増やしているので、4羽とも助けたら変数の値は4になります。
その状態のときに親ペンギンが地上に戻れば、y座標=100となるので条件を満たします。
ポイント④:ゲームオーバーをつくる
ゲームオーバーの条件は、「親ペンギンがゴーストに触れたら」というシンプルな条件です。
ゴーストは「3秒で親ペンギンへ行く」ブロックによって動きます。ただし、親ペンギンが地中に少しもぐったときしか動きません。
この「3秒で親ペンギンへ行く」ブロックですが、ブロックが動作した瞬間の親ペンギンが存在した座標へ3秒かけて動くというものなので、ゴーストがその座標へ到達する間に親ペンギンが移動したとしてもゴーストが目標とする座標は変わりません。
親ペンギンがゴーストに触れたらゲームオーバー用に用意した背景に切り替えて、「すべてを止める」ブロックでプログラムを停止します。
ここまでのポイントを押さえてスクリプトを作ることができたら完成です!
失敗しやすいポイント
「子ペンギン」スプライトに追加した「横穴」コスチュームの大きさ(特に高さ)には注意が必要です。
大きさ(特に高さ)が十分でないと下の図(アニメーション)のように子ペンギンが横穴を飛び出てしまいます。
応用編
今回応用編は特にありません。
まとめ
さいごに、今回の記事で説明した『ディグダグ風シンプルな穴掘りゲームの作り方』についてのポイントをまとめます。
- ポイント①:子ペンギンを地中の横穴に閉じ込める
- ポイント②:親ペンギンを穴掘りしながら移動させる
- ポイント③:ゲームクリアをつくる
- ポイント④:ゲームオーバーをつくる
シンプルなゲームを作る場合は、結構スタンプを使うことがありますが、弱点としてはスタンプは背景に対して絵が反映することです。
スタンプした場所にスプライトが存在するとスタンプした絵がスプライトの後ろに隠れてしまうので、その特性を理解して使う必要があります。