마우스 클릭이 발생한 타일 찾기


9

아이소 메트릭 그리드 기반 게임을 작업 중이며 마우스 클릭을 사용자에서 타일로 연결하는 데 문제가 있습니다. 문제를 두 부분으로 나눌 수있었습니다.

  • 타일을 둘러싼 사각형 찾기 (가능했던)
  • 클릭이 들어간 타일을 직사각형에서 알아 냈습니다.

내부에 타일이있는 사각형의 예는 다음과 같습니다.

타일을 포함하는 사각형

사각형의 길이는 70px, 높이는 30px이므로 30x (top) / 20y (left)의 입력을 사용하면 어떤 타일에 속하는지 어떻게 알 수 있습니까?



좌표 변경 후 확인은 어떻습니까? 타일이 반지의 조각 인 곳에 반드시 극 좌표계를 사용해야합니다.
FxIII

답변:


8

x 방향으로 만드는 각 단계마다 캔버스에서 왼쪽으로 35px, -15px로 이동합니다.

y 방향으로 만드는 각 단계마다 -35px 왼쪽 및 -15px 위로 캔버스로 이동합니다.

직교 타일

이는 타일 좌표계를 픽셀 단위로 쉽게 변환 할 수 있음을 의미합니다.

(x, y) => (35 · x, -15 · x) + (-35 · y, -15 · y) = (35 · x-35 · y, -15 · x-15 · y) = ( Xpx, Ypx)

Xpx와 Ypx를 알고 있고 x와 y (타일 좌표)를 알고있는 역 문제를 해결해야합니다.

Xpx = 35 · x-35 · y;

Ypx = -15 · x-15 · y;

이 문제를 해결할 수 있습니까?

x = 1 / 70 · Xpx-1 / 30 · Ypx

y = -1 / 70 · Xpx-1 / 30 · Ypx

분명히 일반적인 경우에는 정수가 아닌 값을 갖게됩니다. x와 y의 ceil을 가져 가면 전체 타일의 좌표가 제공됩니다.


사각형의 길이는 70px이고 단계는 35px이며 30px (가로)가 아닙니다.
CeeJay
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.