パックマンのモンスターの動き

突然パックマンがやりたくなってやったりしていた。


id:logion:20051203:p3 にあるようにモンスターは結構単純なアルゴリズムなのに
うまく動いてくれているということだが…


いくつか誤解を生みそうな表現があるよな(しかし岩谷氏がそう言っているので、logionさんのせいではない)。
アオスケの「パックマンを中心として点対称の位置に向かう」は、
パックマンを中心として、アカベイと点対称になるような位置に向かう」だと思うし、
(岩谷氏の表現だと、今いる位置の点対称の位置に向かうように感じてしまうが、それだとパックマンに向かうのとなんら変わらない結果になる)
「グズタはランダムに動く」は、まあ厳密に言うと間違いで、
パックマンから遠いときはパックマンに向かってくるが、パックマンにある程度以上近いときは、グズタのホームポジション(画面左下)に向かって動く」
という感じのはずだ。パックマンがグズタのホームにいるときには一直線に向かってくるはず。


パックマンは他にも

  • いじけているときのモンスターはパックマンから逃げるように動くと思われているが、実はランダムに方向を決めているだけである
  • モンスターの動きは、1フレーム中に、「1dot動くか動かないかの処理を2回繰り返す」ということで実現している。つまりモンスターは最大でも120dot/secの速度しか出せない。

の2点が興味深いと思う。


後者については、たしかにそうすることで自分が迷路の分岐点に来たことを簡単に判定できるわけだけど、
「それにしても移動するドット数分だけ処理を繰り返すなんてそんなのアリか?」
なんて思っていたのも事実だった。


で、パックマンをやりながらそんなことをぼんやり考えてたところ、
パックマンのゲーム学入門」という本に
「開発段階ではゲーム全体が製品版の半分のスピードだった」
という話が書かれていたことも思い出して全て納得した。