« Firefoxのメモリ喰いまくり対策 | メイン | 線を引けるかどうか »

2005年09月11日

System Sara 開発日誌:: ボスの内外判定

    

ボスから垂線を…の方法で実装してみた。
まだ1箇所問題があるが原因はわかっているので、対策すればうまく動くようになるはず。
ただ、この方法は場合分けが多すぎる。
もっとシンプルに出来そうな気がする。
また、線分の交差判定も、if分の塊ではなく、数学的な判定の方がスッキリしそうだ。

ボスのいる領域の判定についていろいろと考えてみた。
周りが囲まれていて、そこから囲んでいくのと、中心にはじめの領域があって、そこから囲んでいくのでは性質が違う気がしてきた。
中心から広げていくと言っても、画面外の矩形に囲まれていることになると考えられる。
つまり、2つの領域があることになる。(塗りつぶす時を考えると)
周りからの場合は、領域は1つになる。
また、周りにあるのは狭めると言った感じで、中心にあるのは広げていくと言う印象を持つ。
で、肝心なことは、この二つでアルゴリズムが共有できるかどうかってことだ。

領域内にボスがいるかどうかの判定で、まず思い付いたのが、領域を三角形に分割し、全ての三角形で内か外かを判定し、一つでも内になればボスはその領域内、すべてで外となればその領域にはいないことになる。
シェーダトゥディ 第3回 ラスタライズアルゴリズムの最近のラスタライズアルゴリズムの特徴で、三角形の内か外かの判定の解説がある。
ただ、三角形に分割するのが少し嫌な感じがする。まあ、三角形の集合にしてしまえば、塗りつぶす時に楽になりそうではあるが。
しかし、よくよく考えると領域の内か外の判定はありがちな処理な気がしてきたので、調べてみた。
するとピッタリのが見付かった。
計測と検索の一番下、図形の検索でうまくいきそうだ。
ボスから垂線を下ろして…と言う方法は結構いい線いってたのかも。



投稿者 Takenori : 2005年09月11日 01:31




comments powered by Disqus
Total : Today : Yesterday : なかのひと