コードスペランカー

ゲーム開発日誌など

とっても多いあたり判定を少なくする方法

 画面いっぱいどころか、画面外にも大量に当たり判定が存在していたらどうだろうか?
いまオレが使っているマシンだと、単純な短冊形の判定でも4000回ぐらいから1フレームに収まるかどうか怪しくなってくる。
しかも相互干渉したりするとひどいことになるのは前回説明したとおりだ。
 では、どう解決するのか?相互干渉しないようにしたり、画面内だけに収めたりする方法も当然あるだろう。では、それが出来ないような場合はどうだ?答えの一つとしては、当たり判定を細かい部屋に整理すればよい。
 全体で見ると1000個あるあたり判定を、縦10横10の小部屋に入れて管理する。当たり判定は当然ながら近い位置いないものには関係のない判定だ。近いもの同士を同じ部屋に入れて管理すれば部屋の中だけを判定することが出来る。全体で1000個あっても1部屋当たりの平均は10個、全部やるより計算回数は少なくなる。
 問題点を挙げるとすれば、部屋に入れたり出したりするリソースが新たに発生することだ。