그래서이지도를 그릴 때 각 타일의 위치를 계산하는 첫 번째 부분 (알고리즘)을 작성했습니다 (아래 참조). 그러나 마우스 위치에서 셀을 가져 오는 방법을 알아낼 수 없기 때문에 마우스 위치를 적절한 셀로 변환 할 수 있어야하고 머리카락을 거의 꺼내 왔습니다. 내 관심사는 꽤 높은 수학이나 무언가를 포함한다는 것입니다. 나는 눈치 채기가 쉽지 않습니다.
예를 들어, 마우스 위치가 112; 35 인 경우 어떻게 계산합니까? 셀이 2; 3이면 그 위치에 있습니까? 어쩌면 여기에 정말 도움이되는 수학을 생각하는 프로그래머가 있습니다. 누가 어떻게하는지 알고 있거나 정보를 줄 수있는 사람이 있습니까?아이소 메트릭 타일 맵에서 마우스 위치를 변환하는 방법은 무엇입니까?
var cord:Point = new Point();
cord.x = (x - 1) * 28 + (y - 1) * 28;
cord.y = (y - 1) * 14 + (x - 1) * (- 14);
지도, 각각의 셀 (투명 타일 56x28 픽셀) 말하기 이전 셀의 중앙에 위치 (또는 셀 1 제로 위치 1) 상기 셀을 위치로 변환하는 데 사용하는 코드입니다. 나는 위치와 셀에 많은 것들과 계산을 시도했지만 각각 실패했다.
편집 : 정보 많이 읽은 후 그것을 보인다 (색 타일에 매핑됩니다) 화면 색상 맵을 사용하는 것이 가장 빠르고 가장 효율적인 해결책이 있는지?
을 그리는에 사용하는거야? OpenGL과 같은 많은 그래픽 프레임 워크는 마우스 - 투 - 월드 변환을 수행하는 도우미 메서드를 가지고 있습니다. – AShelly
플래시 BitmapData입니다. – Rihards
참조 : [click-detection-in-a-2d-isometric-grid] (http://stackoverflow.com/questions/5611982/click-detection-in-a-2d-isometric-grid) – AShelly