저는 Kivy 및 Pytmx와 함께 작업하고 있는데, 엇갈린지도를 위해지도 좌표에서 그리드 타일을 가져와야합니다.
내 타일 크기는 다음과 같습니다.
TILE_WIDTH = 256
TILE_HEIGHT = 149
아이소 메트릭 다이아몬드 그리드를 사용했을 때 다음과 같이 계산했습니다.
def screen_to_isometric_grid(cartX, cartY):
screenx = mh - cartY / (TILE_HEIGHT * SPRITE_SCALING) + cartX / (TILE_WIDTH * SPRITE_SCALING) - mw / 2 - 1 / 2
screeny = mh - cartY / (TILE_HEIGHT * SPRITE_SCALING) - cartX / (TILE_WIDTH * SPRITE_SCALING) + mw / 2 - 1 / 2
screenx2 = round(screenx)
screeny2 = round(screeny)
return screenx2, screeny2
이제 엇갈린지도를 사용하고 있으며 타일 좌표를 얻는 방법을 모릅니다.
여기에 C ++에서 알고리즘을 찾았습니다. 여기 에 링크 설명을 입력하십시오.
def subregion(px, py, r_x, r_y):
rx = int(r_x)
ry = int(r_y)
foo = px - py
bar = px + py
if foo < 0 and bar > 1: # Top
return [rx, ry]
elif foo < 0 and bar < 1: # Left
if r_y > 0:
if py > 0.5:
return [rx - 1, ry + 1]
return [rx - 1, ry]
else:
return None
elif foo > 0 and bar > 1: # Right
if r_y > 0:
if py > 0.5:
return [rx, ry + 1]
return [rx, ry]
else:
return None
elif foo > 0 and bar < 1: # Bottom
if r_y < 0:
return [rx, ry]
return [rx, ry + 1]
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다