Vì vậy, tôi đã quản lý bản thân mình để viết phần đầu tiên (thuật toán) để tính toán vị trí của mỗi gạch, nơi nó sẽ được đặt trong khi vẽ bản đồ này (xem dưới đây). Tuy nhiên tôi cần để có thể chuyển đổi vị trí chuột vào ô thích hợp và tôi đã gần như kéo tóc của tôi ra vì tôi không thể tìm ra cách để có được các tế bào từ vị trí con chuột. Mối quan tâm của tôi là nó liên quan đến một số toán học khá cao hoặc một cái gì đó tôi chỉ là một cái gì đó dễ dàng tôi không có khả năng để thông báo.
Ví dụ: nếu vị trí chuột là 112, 35 làm cách nào để tính/chuyển đổi nó thành để nhận được ô đó là 2; 3 tại vị trí đó? Có thể có một số lập trình viên toán học thực sự giỏi ở đây, ai sẽ giúp tôi về điều này hoặc ai đó biết cách thực hiện hoặc có thể cung cấp một số thông tin?Làm thế nào để chuyển đổi vị trí chuột trong bản đồ ốp lát isometric?
var cord:Point = new Point();
cord.x = (x - 1) * 28 + (y - 1) * 28;
cord.y = (y - 1) * 14 + (x - 1) * (- 14);
Nói về bản đồ, mỗi tế bào (trong suốt ngói 56x28 pixel) được đặt ở trung tâm của tế bào trước đó (hoặc ít zero vị trí cho các tế bào 1; 1), trên là mã tôi sử dụng để chuyển đổi vị trí từ ô sang vị trí. Tôi đã thử rất nhiều thứ và tính toán cho vị trí-to-cell nhưng mỗi người trong số họ thất bại.
Edit: Sau khi đọc rất nhiều thông tin có vẻ như rằng việc sử dụng tắt màn hình bản đồ màu sắc (trong đó màu sắc được ánh xạ tới gạch) là giải pháp nhanh nhất và hiệu quả nhất?
những gì bạn đang sử dụng để vẽ? Nhiều khung công tác đồ họa (như OpenGL) có các phương thức trợ giúp để thực hiện chuyển đổi giữa các con chuột với bạn. – AShelly
Flash BitmapData. – Rihards
xem Q: [nhấn-phát hiện-trong-một-2d-isometric-lưới] (http://stackoverflow.com/questions/5611982/click-detection-in-a-2d-isometric-grid) – AShelly