このキャラクターを使っているとしましょう。
(ソース:iconbug.com)
どのように衝突検出を実装しますか?鳥の形が正方形の近くにないため、境界ボックスの使用は適切な近似ではないようです。
画像の一部を表すオブジェクト内に、一種の四分木データ構造があると考えていました。各葉はfalse
(鳥の外側の白/透明な空間を覆う場合)またはtrue
(鳥の領域、つまりくちばし、目などを表す場合)のいずれかになります。次に、鳥との衝突について、シーン内の唯一の障害物をテストします。
しかし、私のアプローチにおける私の問題は次のとおりです。
- クワッドツリーを初期化する方法がわかりません。
- クワッドツリーが初期化された後、障害物が画像の座標内にあると、クワッドツリーをトラバースして使用する方法がわかりません。
角張っていないキャラクターとの衝突検出をどのように行いますか?
LE:私が見たもう1つのアプローチは、複数の境界ボックスを使用することでした。たとえば、くちばし用に1つまたはいくつかのバウンディングボックスを用意し、次に髪や尾用にいくつかのバウンディングボックスを用意します。しかし、それは退屈になる可能性があります。これが私の場合有効なアプローチである場合、それらの境界ボックスをどのように生成しますか?私のプログラムでそれらをハードコードする必要があるとは思いません。
LE2:かなり正確な衝突を気にします。単一のバウンディングボックスまたは円が少なくともその形状を適切に近似する方法を想像できないため、このアプローチは機能しません。