スクラッチプログラミング - パックマンみたいなゲームのつくりかた - Part 3

パックマンの敵(てき)のゴーストをつくって、パックマン風(ふう)のゲームを完成(かんせい)させましょう。迷路(めいろ)のなかをゴーストたちが自動(じどう)でうごきまわるようにするのが、プログラミングのポイントです。

スクラッチプログラミング - パックマンみたいなゲームのつくりかた - Part 3
Photo by shark ovski / Unsplash

更新日:2023年12月27日

Part 1、Part 2でやったこと

Part 1 Part 2 では、パックマンを操作(そうさ)して、迷路(めいろ)のなかに表示(ひょうじ)されたドットをたべるプログラムをつくりました。

迷路の中にいるパックマン
迷路の中にいるパックマン
スクラッチプログラミング - パックマンみたいなゲームのつくりかた - Part 1
パックマンがたべるドットをきれいにならべるプログラムを紹介(しょうかい)します。迷路(めいろ)の背景(はいけい)をつくって、通路(つうろ)に等間隔(とうかんかく)でドットを表示(ひょうじ)しましょう。
スクラッチプログラミング - パックマンみたいなゲームのつくりかた - Part 2
Part 1 でつくった迷路(めいろ)のなかに、パックマンを登場(とうじょう)させましょう。矢印(やじるし)キーでパックマンをうごかして、通路(つうろ)に表示(ひょうじ)されたドットをたべるプログラムをつくります。

Part 3でやること

今回(こんかい)は、ゴーストを追加(ついか)してゲームを完成(かんせい)させますよ。

迷路の中にいるパックマンとゴースト
迷路の中にいるパックマンとゴースト

ゴーストをプログラミングしよう

パックマンのうごきを邪魔(じゃま)するゴーストをつくりましょう。ここでは、円(えん)と四角(しかく)をくみあわせて、ゴーストのスプライトをつくってみました。

ゴーストのスプライトを描く
ゴーストのスプライトを描く
スクラッチプログラミング - ペイントエディターのつかいかた
えをかくことはすきですか?「こんなスプライトがあったらいいのに!」と、おもうことはありませんか?ペイントエディターのつかいかたをしって、スプライトやはいけいをえがけるようになりましょう。

ゴーストは、ステージの中央(ちゅうおう)あたりからうごきだすようにします。

  • 座標(ざひょう)を指定(してい)する
最初の位置を決める
最初の位置を決める

自動(じどう)で迷路(めいろ)のなかをうごきまわるようにしましょう。壁(かべ)にあたってはねかえるとき、さかさまにならないように、回転方法(かいてんほうほう)を指定(してい)しておいてくださいね。

  • 回転(かいてん)させない
回転方法を回転しないにする
回転方法を回転しないにする

どちらの方向(ほうこう)にうごきだすのかわからないようにするために、むきを乱数(らんすう)にします。

  • ランダムな方向(ほうこう)にむける
向きを上下左右のどれかに向ける
向きを上下左右のどれかに向ける

「(90)」かける「(-1)から(2)までのらんすう」にすると、つぎのように、上下左右(じょうげさゆう)すべての方向(ほうこう)にむけることができますよ。

90に乱数をそれぞれ掛けた場合の向き
90に乱数をそれぞれ掛けた場合の向き

うごきだすタイミングも乱数(らんすう)をつかって、ランダムにしましょう。

  • 乱数秒(らんすうびょう)まつ
動かす前に何秒か待つ
動かす前に何秒か待つ

壁(かべ)にあたったらはねかえるようにして、うごかしつづけます。

  • ずっとうごかして、壁(かべ)のいろにふれたら、うしろへうごかす
1歩進んで、もし壁の色に触れたら1歩下がる
1歩進んで、もし壁の色に触れたら1歩下がる

壁(かべ)にふれたときにむきをかえて、どの方向(ほうこう)にいくのかわからないようにしましょう。

  • ランダムな方向(ほうこう)にむける
向きを上下左右のどれかに向ける
向きを上下左右のどれかに向ける

ゴーストが迷路(めいろ)のなかをアチコチうごきまわるようになりました!

ゴーストのスプライトを複製(ふくせい)して、ゴーストを全部(ぜんぶ)で4つにします。いろをそれぞれかえましょう。最初(さいしょ)のx座標(ざひょう)はすこしずつずらして、ステージの中央(ちゅうおう)にならべます。

ステージの中央に並んでいる色違いのゴースト
ステージの中央に並んでいる色違いのゴースト

ゲームオーバーをきめよう

パックマンがゴーストにふれたら、ゲームをおわりにします。「パックマン」のスプライトをクリックしてから、ブロックを追加(ついか)しましょう。

  • ゴーストのどれかにふれたら、プログラムをとめる
もしゴーストに触れたなら、全てを止める
もしゴーストに触れたなら、全てを止める

ゴーストをよけながらパックマンを操作(そうさ)して、ドットをたべるゲームができました!

でも、もしかしたらこのプログラム、うまくうごかないかもしれません。ゲームをもう一度(いちど)やろうとして、緑(みどり)の旗(はた)をおしても、ゲームがスタートしない場合(ばあい)があります。

エラーがおきないようにしよう

緑(みどり)の旗(はた)をおしても、ゲームがスタートしないというのは、スクラッチでプロジェクトをつくっていると、たまにおきるエラーです。この場合(ばあい)、緑(みどり)の旗(はた)を2かいおすと、ゲームがスタートします。

ここからは、エラーがおきないようにするために、いままでつくってきたプログラムをちょっと変更(へんこう)していきますよ。

メッセージをつかおう

いままでつくってきたプログラムは、すべてのブロックを「みどりのはたがおされたとき」の下(した)につなげていましたね。エラーをなくすためには、「みどりのはたがおされたとき」のほかに、「メッセージ」をつかいます。

「みどりのはたがおされたとき」と「メッセージをうけとったとき」で、実行(じっこう)する内容(ないよう)をわけていきましょう。


これより下は、Pyxofyメンバー限定公開です。メンバーになると読むことができます。登録方法は、『メンバー登録・ログイン方法』をご覧ください。

スクラッチプログラミング - ライフ(HP)のつくりかた
ゲームでつかえるライフ(HP)のプログラムを紹介(しょうかい)します。ハートのスプライトでライフを表示(ひょうじ)して、ダメージをうけたときに1ポイントずつへるようにプログラミングします。
Start Here - Scratch (スクラッチ)
Scratch (スクラッチ)記事(きじ)のレベル別一覧です。初級、中級、上級、拡張機能にわけてまとめました。