スクラッチプログラミング - パックマンみたいなゲームのつくりかた - Part 2
Part 1 でつくった迷路(めいろ)のなかに、パックマンを登場(とうじょう)させましょう。矢印(やじるし)キーでパックマンをうごかして、通路(つうろ)に表示(ひょうじ)されたドットをたべるプログラムをつくります。
更新日:2023年12月27日
Part 1 でやったこと
前回(ぜんかい)の Part 1 では、迷路(めいろ)の背景(はいけい)にドットを表示(ひょうじ)するプログラムをつくりました。
Part 2 でやること
今回(こんかい)は、パックマンを追加(ついか)して操作(そうさ)できるようにプログラミングしていきますよ。
Part 2からは、ドットはいろとサイズをかえて、ちいさい黄色(きいろ)のドットにしてあります。次回(じかい)の Part 3 では、敵(てき)のゴーストを追加(ついか)してゲームを完成(かんせい)させます。
パックマンをつくるためには
主役(しゅやく)のパックマンをつくるためには、パックマンのスプライトと、四角(しかく)いスプライトを一緒(いっしょ)にうごかします。四角(しかく)いスプライトは、壁(かべ)とのあたり判定用(はんていよう)につかいます。
パックマンは、口(くち)をパクパクさせながらうごきますよね。口(くち)がひらいているときに壁(かべ)にぶつかると、壁(かべ)にくいこんだ状態(じょうたい)になってしまいます。そうすると、壁(かべ)ではねかえるうごきがうまくいきません。それをふせぐために、四角(しかく)をつかいます。
四角(しかく)を矢印(やじるし)キーでうごかせるようにして、パックマンがそれについてくるようにプログラミングしていきましょう。
しかくをプログラミングしよう
まずは、あたり判定用(はんていよう)につかう四角(しかく)をつくりましょう。スプライトは、迷路(めいろ)の通路(つうろ)をとおれるサイズでつくってください。
座標(ざひょう)のブロックで、最初(さいしょ)の位置(いち)をきめておきましょう。四角(しかく)は、パックマンのスプライトよりうしろがわに表示(ひょうじ)したいので、「さいはいめんへいどうする」ブロックをつなげておきます。
- 座標(ざひょう)を指定(してい)して、最背面(さいはいめん)へ移動(いどう)する
上下左右(じょうげさゆう)の矢印(やじるし)キーで操作(そうさ)できるようにしましょう。
- 矢印(やじるし)キーでうごかす
どの矢印(やじるし)キーをつかうときも、うごかすスピードや壁(かべ)ではねかえるうごきはおなじです。「まえにすすんで、壁(かべ)にふれたら、うしろにさがる」といううごきを、 ブロック定義(ていぎ)でまとめましょう。
- 「うごく」を定義(ていぎ)する
うごかすときに「()びょうまつ」をつかわないと、スプライトはスーっとなめらかにうごきます。迷路(めいろ)のなかでうごかす場合(ばあい)は、すこしカクカクとしたうごきのほうが操作(そうさ)しやすいので、ここでは「(0.1)びょうまつ」をつかっています。
矢印(やじるし)キーとおなじ方向(ほうこう)にスプライトのむきをかえてうごかせるように、ブロックを追加(ついか)しましょう。
- 「むき」と「うごく」ブロックを追加(ついか)する
矢印(やじるし)キーをつかって、四角(しかく)を操作(そうさ)できるようになりました!
パックマンをプログラミングしよう
つぎに、パックマンをつくります。スプライトは、四角(しかく)とおなじくらいのサイズの円(えん)にしてください。迷路(めいろ)の壁(かべ)とのあたり判定(はんてい)は、四角(しかく)のスプライトでおこなうので、円(えん)がすこしおおきくても、ちいさくても、問題(もんだい)はありませんよ。
「コスチューム1」を複製(ふくせい)して、口(くち)があいたコスチュームをつくります。けしゴムのふとさをほそくして、口(くち)の部分(ぶぶん)をけしましょう。
けした部分(ぶぶん)がデコボコしている場合(ばあい)は、おなじいろの長方形(ちょうほうけい)をかぶせておくと、きれいにみえますよ。
スプライトが用意(ようい)できたら、座標(ざひょう)のブロックで、最初(さいしょ)の位置(いち)を四角(しかく)とおなじにしておきます。
- 座標(ざひょう)を指定(してい)する
矢印(やじるし)キーがおされてうごくときだけ、コスチュームをかえてパクパクさせましょう。
これより下は、Pyxofyメンバー限定公開です。メンバーになると読むことができます。登録方法は、『メンバー登録・ログイン方法』をご覧ください。
Pyxofy (著)「きょうからはじめるスクラッチプログラミング入門」
Pyxofy が Scratch の電子書籍を出版しました!Kindle・Apple Books からご購入ください。