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


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.