아이소 메트릭 런-점프 스타일 플랫 포머를 만들고 싶습니다. 플레이어는 바닥 위의 플랫폼 위로 뛰어 올라 물체의 측면을 때릴 수 있어야합니다.
2D 게임 엔진을 사용하므로 사용하지 않는 치수에 대해 전체 3D 충돌을 모방하고 싶지 않습니다.
게임의 오브젝트는 깊이를 위해 X, Y, 너비, 높이 및 Z를 사용하여 배치해야한다고 생각합니다.
이 값을 사용하여 충돌을 어떻게 감지해야합니까?
아이소 메트릭 런-점프 스타일 플랫 포머를 만들고 싶습니다. 플레이어는 바닥 위의 플랫폼 위로 뛰어 올라 물체의 측면을 때릴 수 있어야합니다.
2D 게임 엔진을 사용하므로 사용하지 않는 치수에 대해 전체 3D 충돌을 모방하고 싶지 않습니다.
게임의 오브젝트는 깊이를 위해 X, Y, 너비, 높이 및 Z를 사용하여 배치해야한다고 생각합니다.
이 값을 사용하여 충돌을 어떻게 감지해야합니까?
답변:
2 가지 옵션 :
고정 된 직교 카메라를 사용하여 3D 게임으로 취급 할 수 있습니다. 그런 다음 모든 표준 3D 게임 리소스 / 책 / 자습서 / 라이브러리를 사용할 수 있습니다. 스프라이트로 2D로 렌더링 되더라도 움직임 등의 계산은 여전히 씬 뒤에서 3D가됩니다. 가장 정확한 결과를 얻을 수 있습니다.
높이 속성이 추가 된 하향식 2D 게임으로 취급 할 수 있습니다. 예를 들어, 각 타일에 높이 값이있는 2D 그리드를 상상해보십시오. 한 타일에서 다른 타일로 이동할 때 캐릭터의 발이 해당 타일의 높이보다 높거나 같은 경우에만 캐릭터가 특정 타일로 넘어갈 수 있지만, 점프하고 중력이 타일 위로 내려 오면 그들에게 남아있게하십시오. 약간의 작업으로 다리 등을 걸을 수 있습니다.
게임이 사각형 격자를 기반으로하는 경우이 격자는 X / Y 축을 정의합니다. 그리고 Z는 높이로 사용될 수 있습니다.
그러면 충돌이 2D 타일 기반 게임만큼 쉬워집니다.
그런 다음 그리드에서 다시 아이소 메트릭 스크린 좌표로 변환하여 렌더링하면됩니다. 이것은 매우 간단하지만 정렬 목적으로 (깊이 값을 계산하는 것에 대해 생각해야 할 수도 있습니다 (아이소 메트릭 장면을 뒤에서 앞으로 렌더링)
인터넷 검색이 데모를 찾습니다 : http://planetskill.com/iso/
WASD가 움직입니다. 스페이스 바 점프
위 / 아래 축과의 충돌 만 구현하지만 다른 충돌을 추가하는 것은 쉽습니다.
다음 단계의 위 / 아래 위치가 최대보다 높으면 움직이지 마십시오. 이것은 또한 쉬운 방법으로 점프를 구현할 수 있도록해야합니다.
여기에 샘플 코드 : http://gist.github.com/478997
무엇보다도. 아이소 메트릭은 전단 형 2D 그리드 일 뿐이므로 2D 타일 맵으로 취급하고 깊이를 인코딩하는 방법을 생각하십시오. 일반 2D 게임에서 어떻게 할 것입니까 ( '점프'할 때 블록 뒤 또는 앞으로 갈 수 있습니까?) 타일 당 깊이 (깊이 버퍼-> z 버퍼)를 저장하거나 여러 레이어를 사용합니다 또는 더 멋진 사용자를 원한다면 타일 유형 (또는 맵 위치)마다 콜백을 구현하고 원하는 것을 수행하고, 깊이를 확인하고, 장비를 확인하고, 플레이어를 뒤 틀고, 플레이어를 천천히 위로 움직이고, HD를 포맷 할 수 있습니다.
레벨 위에 볼 수없는 별도의 충돌 레이어가 있고 충돌을 확인하는 데 사용할 수 있습니다. 플레이어가 어떤 레이어인지 아는 한이 레이어를 여러 레이어에 사용할 수도 있습니다.