• 2014年10月15日

スクラッチ2.0 でパックマンゲームを作ってみた

スクラッチ2.0 でパックマンゲームを作ってみた

スクラッチ2.0 でパックマンゲームを作ってみた 424 283 パソコン生活サポート Pasonal

パックマンのゲームを作成

Scratch2.0を利用して往年の名作ゲーム「PACKMAN(パックマン)」を作成しました。キャラクタである、パックマンと敵キャラは全てイラストレーターで作成。動きのバリエーションも何通りか作成し、よりゲームらしい動きにしてみました。肝心のアルゴリズムはというと・・・、結構なボリュームになり、全てをお見せするのは困難です。

ただ、一番苦労した点は「敵の動きを制御するアルゴリズム」だと思います。

 

敵(エネミー)の移動ルーチン

本来のゲームでは下記のような感じで作成するらしい。

  • 座標を設定し、マス目に応じて移動させるようにする。
  • 特定の敵は、PACKMANのいる座標を把握し、最短ルートで移動する。

パックマン 敵の移動ルーチン

 

と、こんな感じにするみたいですね…。でも私のリス並みの脳みそではこんな高度なことはできません。なので、以下のように考えを変えました。

「敵が青色の壁にぶつかったら、ランダムに方向を転換し、その方向に移動する」

これならいけそ~だ・・・と自分自身を無理やり納得させて作りました。確かにこれでも成り立ちますが・・・どーにも敵の動きが単調になり、ゲームの魅力が薄れてしまった。なので、自キャラよりも敵の動きを若干早く調整し、ゲームに緊張感を持たせることにしました。

パックマンゲーム

 

また、よりゲームらしくするために「得点の表示」「タイムの計測」の要素を追加することで、それっぽく作りました。しかし、ここで問題が。なぜかプレイ中に「カクカクする現象」が発生。

どーやらアルゴリズムの処理(構築のしかた)に問題があるみたいだけど・・・。また、全てを見直し。同じような処理は関数にしてまとめてみたり、不要な命令を極力除去したり、イラストレーターで作成した画像を圧縮したりしました。

その結果・・・一応なんとなくスムーズに動くまでに改善されました!

 

次に大変だったところ

敵キャラの動き方も悩みましたが、それ以上に大変だったのは、クッキー(白いまる)の作成でした。ステージ内に所せましと並べなければならず、その数もかなり多いため、一つ一つ丁寧に並べる作業はかなりのストレス

まず、一つのクッキーを作成し、あとは複製(コピー)を利用して増やしていきました。その数なんと200個近く。ゲームがカクカクする原因はこのクッキーだったのかもしれません。

(※Scratchで画像を200個も作るとか、そりゃ不具合も発生するわな…)

ちなみに制作総時間は15~20時間ぐらいでした。次は何作ろうかな~。「アイスクライマー」とか面白そうですね。今回は色々と問題点が浮き彫りになったので、この教訓を次回のゲーム作りに活かしたいと思います。

 

パックマンゲーム for Scratch