Không có phương pháp XNA nào thực hiện kiểm tra đánh lục giác.
Bài viết này giải thích cách viết một hàm thực hiện kiểm tra và cung cấp cho bạn hàm:
Cách kiểm tra nếu một điểm nằm trong hình lục giác
Dưới đây là một bản tóm tắt từ bài viết đó:
Và chức năng thực hiện bài kiểm tra như sau:
- Kiểm tra hộp giới hạn xung quanh hình lục giác, sớm ra nếu nó không giao nhau.
- Chuyển đổi điểm thành góc phần tư cục bộ như hình trên.
- Thực hiện các
isInside
thử nghiệm sau đây cho góc phần tư cục bộ.
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;
}
Xem bài viết để biết chi tiết đầy đủ.
Dưới đây là một số nguồn hữu ích liên quan khác: