当たり判定で悩む

一般的な当たり判定だとキャラクター位置から計算して、タイルが重なっていれば「当たり」と判定すればイイのですが、キャラクターによっては不自然な場合があります。


たとえば、黒スラとの当たり判定の場合、次のような状態では「ハズレ」です。


さらに、同じキャラクターであっても、パターンによってはもっと深く重ならないと「ハズレ」です。


タイルの重ね合わせで判定するのではなく、ビットマップの重ね合わせ判定ができればイイのですが・・・
HSPにそのような命令はなく、PGETでゴリゴリ書いてみたところ、とんでもなく遅くなってしまい遊べるものではありませんでした。


また、ビットマップの重ね合わせで判定とした場合、上の黒スラような場合、パターンによって当たり判定位置が毎回変わるため、ぎりぎりの位置にいると「当たり」「ハズレ」を繰り返すことになってしまいます。


キャラクターごとの当たり判定範囲を定義し、その範囲の重ね合わせを判定するのがイイのかな?
でも、キャラクター数x方向数分を定義することとなり、かなり面倒なので避けたいところです。

さてどうしたものかな・・・