타일 ​​맵을 렌더링하는 동안 고르지 않은 타일을 어떻게 처리합니까?


13

여기에 이미지 설명을 입력하십시오

확실하지 않은 타일 맵으로 수행하려는 작업은 다음과 같습니다. 보시다시피 상단 벽이 바닥 및 측면 벽보다 훨씬 큽니다 (이것은 또한 내 모서리에 문제가 있으며 [L 다음 정사각형과 같은 이상한 모양] 및 현재 타일의 40x40px보다 큽니다. ).

여기에 이미지 설명을 입력하십시오

또한 타일에 사용하는 타일 시트를 첨부하여 나머지 타일과 비교하여 모서리와 상단이 어떻게 보이는지 보여줍니다.

내가 생각하는 것은 설정된 WxH 대신 타일 너비와 높이를 사용하는 경우와 동일한 배열을 사용하여 그릴 수 있다는 것입니다. 나는 이것이 얼마나 잘 작동하는지 모르겠지만, 다른 값을 가진 블록은 플레이어 / NPC가 밟을 수없는 블록 일 것입니다. 문제가되지 않을 수도 있습니다. 해결책.

내가 현재 어떻게 처리하고 있는지 보려면 내 코드 : Map.java (pastebin) (편집 : 처리하지 않고, 현재지도를 수행하는 방법을 의미)

tl; dr-2D 타일지도를 가져 와서 다른 크기의 타일로 변경하려면 어떻게해야합니까? 아니면 내가하려는 일을하는 더 좋은 방법이 있습니까? 인터넷 검색 중에 찾아야 할 방법의 이름이 있습니까?

답변:


19

이를 수행하는 두 가지 표준 방법이 있습니다.

  • 비표준 타일 크기를 표준 타일 크기로 나눕니다. 따라서 이러한 벽 스트립은 레벨 편집기에 함께 배치하는 것으로 알려진 사각형 타일의 "스택"이됩니다. 초기 파이널 판타지 게임과 같은 게임은 이런 식으로 작동했습니다.
  • 타일 ​​조각을 표준 타일 높이보다 크게 만드십시오. 타일을 타일 사각형의 맨 아래에 정렬하여 추가 타일을 일반적인 타일 높이보다 높게 그릴 수 있습니다. 지도를 그릴 때 뒤에서 시작하여 (화면에서 타일 사각형이 더 높은 타일) 타일을 그립니다 (화면 하단에있는 타일). 이렇게하면 전경의 높은 타일이 배경의 타일 위에 올바르게 오버레이됩니다. 이 방법에서는 타일 크기가 여전히 단일 타일로 제한되어 있습니다.

이 방법 중 하나 또는 둘 다를 수행 할 수 있습니다. "타일 스택으로 나누기"접근 방식을 사용하는 게임조차도 일부 객체 (나무 등)가 타일 높이 제한을 깨뜨리고 모든 레이어를 확실히하기 위해 위에서 아래로지도 그리기 순서를 적용 할 수 있습니다. 바르게.


2
두 번째 접근 방식은 +1입니다. 기본적으로 타일 맵에서 온맵 오브젝트로 이동합니다.
Kromster

정말 고마워요. 두 번째 옵션과 비슷하다고 생각했지만 표준화 된 방식으로하고 싶었습니다. = D
지연 시간 :

2

홀수 크기의 타일을 슬라이스하여 표준 치수에 맞 춥니 다. 타일 ​​맵의 요점은 모든 것을 동일한 크기로 설정하여 많은 속도와 유용성을 얻는 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.