자바 스크립트에서 배열의 배열로 만든 큐브 격자가 있습니다. 눈금 차원은 변수에 저장됩니다. 따라서 dim
은 단일 큐브의 차원입니다. spacing
은 각 큐브 사이의 거리입니다 (dim
및 spacing
픽셀로 표시).자바 스크립트 - 그리드를 통해 마우스 클릭을 매핑
이제 항상 g.mouseX
및 g.mouseY
변수에 사용자 마우스 위치를 지정할 수 있다는 것을 고려하면이 코드가 항상 정확한 것은 아닙니다.
var j = Math.round(g.mouseX/(dim+spacing));
var i = Math.round(g.mouseY/(dim+spacing));
// user clicked on the cell grid[j][i]
때로는 큐브를 클릭하지만 주변의 사람을 생각하는 것처럼 보입니다. 사용자 클릭의 전체 매핑이 dim
의 절반으로 이동 된 것 같습니다. 아마도 Math.round를 사용하면 모든 것이 거의 잘못되었지만 사용자가 클릭 할 때 그리드에서 정확한 좌표로 혼란스럽고 예기치 않은 값을 변환 할 수있는 다른 방법은 없습니다.
누구나 도움을 드릴 수 있습니다.
미리 감사드립니다 ...
이것을 시도합니다! 이 셀은 CSS 또는 HTML 요소가 아니기 때문에 onclick을 사용할 수 없습니다. 캔버스에 그리기 때문에 브라우저의 관점에서 볼 때이 셀은 존재하지 않습니다. – Saturnix
Math.floor는 잘 작동합니다! : D – Saturnix
다시 한번 많이 감사합니다! 너의 도움으로 나는 지금 큰 일을하고있다. – Saturnix