PNG 画像やその他の形状のヒット テストのパフォーマンスを向上させたいと考えています。この手法を使用すると、チェック時のパフォーマンスの問題がないため (セットアップではありません)、それらがどのような形状であるかはあまり気にしません。
ヒット テストのためだけに、画面上のすべての画像をセカンダリ キャンバスに収集するつもりです。描画された各画像に対して、その特定の画像に添付される新しい色を作成します。次に、それらすべてをキャンバスに描画します。各画像は異なる塗りつぶし色になります。
ピクセル (x, y) をクリックすると、色 (r, g, b) が取得されます。すべての色が画像にマッピングされているため、画像をクリックしてもエラーは発生しません (そのクリックでヒットしたものを探すのに無駄はありません)。
256*256*256=16 777 216 アイテムに制限されることはわかっていますが、それらはすべての色なので、今のところ問題になるとは思いません...
したがって、私が本当に必要としているのは、これらの塗りつぶしの色を、各画像の可視ピクセルのみに基づくセカンダリ キャンバスに配置する方法を知ることです。
アップデート
右に見られるように、それはヒット テスト マップです。したがって、黒い影 (c) をクリックすると、他の計算を行わずに青いボックスをクリックしたことがすぐにわかります。
改善の 1 つは、アルファ データをキャッシュすることです。また、各イメージ インスタンスに同じアルファ データを再利用します (スケーリングと回転に注意する必要があります...)。
ありがとう