旧それなりブログの跡地、画像やスタイルやJSなどが壊れてることがあります。

hitTestObjectだと矩形としてしか判定できない

2007年10月25日

ActionScript3でオブジェクト同士の重なりの判定を行う場合にhitTestObjectを用いると、オブジェクトを矩形としてしか判定してくれないようだ。
つまり、graphics.drawCircle等で矩形以外の見た目を設定した場合でも、重複判定自体は矩形として行われてしまう。
どうやって対処しようかと考えたけど、これくらいしか思いつかない。

  • 重複判定を行うオブジェクトの形状が円形同士のみなら、円の中心座標から計算して重複判定を行える。
  • 円と矩形等の形状が混合している中での重複判定なら、hitTestPointなら見た目通りに判断してくれるので、適当に判定する点を複数取って(矩形なら四隅とか)それを全てhitTestPointにかけて判定する。

両方とも対処としては気持ち悪いのですが、他人のソースを見ると、皆さんギリギリのところで工夫しているので仕方ないっぽいです。