Altıgen çarpma testi yapan bir XNA yöntemi yoktur.
Bu makalede, sınama yapan bir işlevin nasıl yazılacağı açıklanır ve bu işlev size sağlanır:
Bir Noktanın Altıgen İçinde Olup Olmadığı Nasıl Kontrol Edilir
İşte bu makaleden bir özet:
Ve testi yapan işlev şu şekilde gider:
- Altıgenin etrafındaki sınırlayıcı kutuyu, kesişmiyorsa erkenden test edin.
- Noktayı yukarıda gösterildiği gibi yerel bir çeyreğe dönüştürün.
isInside
Yerel kadran için aşağıdaki testi yapın .
public function isInside(pos:Vec2Const):Boolean
{
const q2x:Number = Math.abs(pos.x - _center.x);
const q2y:Number = Math.abs(pos.y - _center.y);
if (q2x > _hori || q2y > _vert*2)
return false;
return 2 * _vert * _hori - _vert * q2x - _hori * q2y >= 0;
}
Tüm ayrıntılar için makaleye bakın.
İşte bazı yararlı diğer kaynaklar: