やっているゲームに問題があります。私は基本的にマップ内にあるオブジェクトを持っており、それらが壁に衝突するかどうかをそれぞれチェックする必要があります (そして何かをします)。AS2 で作業していたので、同じ方法を考えました: 壁だけで絵を描いたので、長方形だけでその間の他のすべてが透明です (存在しないので、たとえば床)。AS2 では、画像を画面に表示します。これを壁と呼びましょう。次に、すべてのオブジェクトで壁に対して hitTest を実行しました。たとえば、オブジェクトは実際には画像上にありました。透明な部分はその一部であったためですが、機能は可視部分のみでテストされていたため、壁もそうでした。それでうまくいきました。
AS3 にはHitTest
but がありませhitTestObject
んwall.hitTestObject(object)
。問題は、この関数はまるで透明を見ていないかのようであり、壁に触れていないオブジェクトが透明に衝突することです!
実際に問題を解決するを見つけましたPixelPerfectCollisionDetection
が、それは巨大で重いので、私の場合、各フレームでテストするオブジェクトが非常に多い (少なくとも 60) ため、ゲームの速度が大幅に低下します!
私が必要としているhitTestObject
のは、画像の透明な部分を処理する (あまり精度は必要ありません!) ような関数です。
どのようにできるのか?