スクラッチプログラミング - パックマンみたいなゲームのつくりかた - Part 3
パックマンの敵(てき)のゴーストをつくって、パックマン風(ふう)のゲームを完成(かんせい)させましょう。迷路(めいろ)のなかをゴーストたちが自動(じどう)でうごきまわるようにするのが、プログラミングのポイントです。
更新日:2023年12月27日
Part 1、Part 2でやったこと
Part 1 、 Part 2 では、パックマンを操作(そうさ)して、迷路(めいろ)のなかに表示(ひょうじ)されたドットをたべるプログラムをつくりました。

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

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

ゴーストは、ステージの中央(ちゅうおう)あたりからうごきだすようにします。
- 座標(ざひょう)を指定(してい)する

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

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

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

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

壁(かべ)にあたったらはねかえるようにして、うごかしつづけます。
- ずっとうごかして、壁(かべ)のいろにふれたら、うしろへうごかす

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

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

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

ゴーストをよけながらパックマンを操作(そうさ)して、ドットをたべるゲームができました!
でも、もしかしたらこのプログラム、うまくうごかないかもしれません。ゲームをもう一度(いちど)やろうとして、緑(みどり)の旗(はた)をおしても、ゲームがスタートしない場合(ばあい)があります。
エラーがおきないようにしよう
緑(みどり)の旗(はた)をおしても、ゲームがスタートしないというのは、スクラッチでプロジェクトをつくっていると、たまにおきるエラーです。この場合(ばあい)、緑(みどり)の旗(はた)を2かいおすと、ゲームがスタートします。
ここからは、エラーがおきないようにするために、いままでつくってきたプログラムをちょっと変更(へんこう)していきますよ。
メッセージをつかおう
いままでつくってきたプログラムは、すべてのブロックを「みどりのはたがおされたとき」の下(した)につなげていましたね。エラーをなくすためには、「みどりのはたがおされたとき」のほかに、「メッセージ」をつかいます。
「みどりのはたがおされたとき」と「メッセージをうけとったとき」で、実行(じっこう)する内容(ないよう)をわけていきましょう。
これより下は、Pyxofyメンバー限定公開です。メンバーになると読むことができます。登録方法は、『メンバー登録・ログイン方法』をご覧ください。

「きょうからはじめるスクラッチプログラミング入門」by Pyxofy
Pyxofy から Scratch の基本をまとめた電子書籍を出版しました。
Apple Books・Kindle でご購入ください。