2010-08-23 4 views
2

저는 Appcelerator Titanium for iPhone을 사용하는 간단한 보드 게임을하고 있습니다 (javascript -이 질문에 대해서는별로 중요하지 않습니다).격자 좌표가 주어지면 내부에있는 셀의 중심점을 어떻게 결정할 수 있습니까?

제 문제는 언어별로 다르지 않습니다. 일반적인 프로그래밍 및 수학 문제에 더 가깝습니다.

필자에게는 10 열 x 10 행 (100 셀) 인 "셀"그리드가 있습니다. 체커/드래프트와 같은 보드 게임입니다.

상단에서 시작하여 하방으로 이동이 행이 'J'가

왼쪽부터 오른쪽으로 이동을 'A'를 표시되어, 열은 '9'

통해 '0'로 표시되는 각 셀은 32x32 픽셀입니다.

토큰을 그리드 위로 드래그 할 수 있으며 내가 놓으면 공개 된 위치의 x/y 좌표를보고합니다 (예 : 124,302). 변수에 따라이 좌표 코드를 사용할 수 있습니다.

그럼 내 질문은 내가 놓은 셀의 중심점을 어떻게 결정하여 그 셀에 토큰을 중앙에 배치 할 수 있습니까?

이 작업을 수행하는 방법에 대한 아이디어가 있으십니까?

+0

이 경우 화면의 좌표가 아닌 격자의 셀 좌표를 찾는 것이 유용하다는 것을 자주 발견했습니다. 게임 논리를보다 단순하게 만들고 화면 좌표를 그리드 좌표에서 쉽게 계산할 수 있습니다. – fizban

+0

@fizban, 동의합니다. 나는 그걸 알아낼 필요가있다. – k00k

답변

2

정수 배부를 사용하여 원본 좌표를 "반올림"합니다.

x = (x/32) * 32 + 16; 
y = (y/32) * 32 + 16; 

숫자가 2의 배수이기 때문에 비트 연산을 사용할 수도 있습니다.

x = (x & ~0x1F) | 0x10; 
+0

그래, * 그게 내가 생각한거야. :) –

+0

감사합니다. 이것은 제가 종이에 향한 방향입니다. 방금 첫 번째 "둥근"방법을 시도했지만 예상 결과를 얻지 못했습니다. 예를 들어 좌표 10,10을 가져옵니다. 첫 번째 상자에 분명히 있어야하며 첫 번째 상자의 중심은 16,16입니다. 그러나 우리가 10,10에 수학을한다면 우리는 26,26으로 끝납니다. 내가 뭔가 잘못한 게 아니라면. – k00k

+0

Kook, 방정식은 정확하지만 X와 Y가 정수이고 정수 나누기가 내림 (대부분의 언어에서) 인 경우에만 해당됩니다. –

관련 문제