2012-06-23 1 views
3

현재 as3 등각 투영법을 구현하고 있지만 심도 정렬에 많은 문제가 있습니다. 솔루션을 검색했지만 내 문제 (사각형 객체)와 일치하는 것을 찾지 못했습니다. 그것의 1x1 타일 객체 사이에 때 깊이 정렬이 잘 작동큰 개체에서 등각 투영 정렬 문제입니다.

enter image description here

당신이 볼 수 있듯이 : 여기

내 게임의 스크린 샷이다. 간단히 x와 y 좌표 (등각 맵과 관련)를 사용하여 정렬합니다.

2x2 또는 1x4 또는 4x1과 같은 더 큰 물체가있을 때 문제가 발생합니다.

깊이 정렬을 어떻게 처리해야합니까?

답변

7

x, y 값을 기준으로 한 장면을 정렬 할 수 없다고 생각합니다. 각 개체의 길이가 길어서 한쪽 끝이 다른 쪽 끝과 다른 깊이에 있어야합니다. 예를 들어, 그림의 갈색 의자가 파란색 의자와 긴 소파 사이의 사각형으로 왼쪽 아래로 한 칸 이동하면 렌더링을 처리하는 방법을 고려하십시오. 소파 안쪽의 빨간색 테이블보다 장면에서 더 깊을 것입니다. 그러나 테이블 위에 있어야 할 소파 위에 렌더링해야합니다.

  • 이 큰 개체에 대한 중복의 한 종류를 사용하여 수준을 디자인 :

    나는 두 가지 간단한 해결책이 있다고 생각합니다. 인스턴스의 경우 객체의 깊이가 가장 가까운 모퉁이를 기반으로 지정 될 수 있으므로 의 가장 먼 비트 앞에 놓지 않아야합니다 (맨 위에 렌더링되므로). 또는 현재 코드 (깊이가 가장 먼 곳에 을 사용하는 것으로 보입니다)를 붙일 수 있으며 더 가까운 부분 뒤에 아무 것도 넣지 마십시오. 그래도 캐릭터가 움직이는 다른 문자들과 개체에 문제가있을 수 있습니다. 디자인에주의를 기울이면 번거로운 타일을 액세스 할 수 없게되는 경우가 있습니다. 그러나 어떤 경우에는 너무 제한적일 수 있습니다.

  • 대형 개체를 작은 깊이로 자르십시오 깊이가 인 것이 좋습니다. 너는 아마 을 1x1 조각까지 내려 가고 싶을 것이고, 각각은 명확한 깊이를 가질 것이다. 코드에서 더 큰 개체를 보이지 않는 크기의 컨테이너로 유지하거나 더 이상 적용하지 않을 수도 있습니다. 전체를로드하면 더 쉽게로드하여 의 다양한 비트와 상호 작용할 수 있습니다.

크기가 큰 물체를 1x1으로 분할하면 모듈화 할 수 있기 때문에 크기가 작아도 좋습니다. 즉, 서로 다른 조합으로 1x1 조각을 함께 넣으면 크기가 다른 개체를 만들 수 있습니다. 예를 들어, 이미지의 2x1 테이블을 세로로 반으로 자르고 중간에 1x1 중간 타일을 만든 경우 중간 타일을 몇 번 반복했는지에 따라 디자인을 3x1 또는 10x1으로 늘릴 수 있습니다. 타일링 된 그래픽을 적당하게 표현할 수있는 많은 방법이 있습니다.

+0

답변 해 주셔서 감사합니다. 나는 자신의 카지노를 만드는 사용자이기 때문에 첫 번째 솔루션으로는 제대로 작동하지 않을 것입니다. 나는 그에게 한계를 두지 못한다. 그러나 두 번째 해결책은 재미있을 것 같습니다, 나는 일할 무언가를 얻을 수 있는지 알아보기 위해 노력할 것입니다. ;) – Sanchex

2

울티마 온라인 에뮬레이터 (특히 POL은 있지만 다른 것들도있을 수 있음)는 '큰'개념의 구현과 사용을 통해이를 달성합니다 .- 하나의 객체는 커트 업 된 큰 그래픽 섹션으로 구성됩니다. 이러한 컷업 그래픽은 스프라이트가 iso 그리드 경계의 왼쪽 및 오른쪽 모서리 점에서 세로로 분할되도록합니다.

기타 고려 사항 : - '멀티'피스 정렬 화면 - 위에서 아래로 Y 축 렌더링. - '멀티'의 남쪽 (즉, 화면 하단 왼쪽) 구성 요소가 앵커 타일 위치가됩니다 (소파의 경우 가장 왼쪽 부분). - 각지도 위치가 자체적 인 개체의 세로 스택을 보유 할 수도 있다고 생각하십시오. screen-Y로 각 객체의 렌더링을 오프셋하면 높이/고도가 시뮬레이트되며, 아래에서 위로 정렬해야합니다 (예 : 최저 고도에서 최고 고도).

행운을 빈다.

관련 문제