1
저는 LibGDX로 등각 투상 게임을 만들고 있습니다. 팬 한도를 알아 내려고 노력 중이므로 사용자가 화면의 등각 투영 맵에서 벗어날 수 없습니다. 한계는 확대/축소에 따라 달라질 필요가 있습니다. 수직의 등각 투구 한계가 작동하지 않습니다.
나는 팬 제한을위한 직교 하향식 게임에 다음 코드를 발견 는float pxWidth =((TiledMapTileLayer) tiledMap.getLayers().get("Background")).getWidth() * ((TiledMapTileLayer) tiledMap.getLayers().get("Background")).getTileWidth();
float pxHeight = ((TiledMapTileLayer) tiledMap.getLayers().get("Background")).getHeight() * ((TiledMapTileLayer) tiledMap.getLayers().get("Background")).getTileHeight();
float scaledViewportWidthHalfExtent = cam.viewportWidth * cam.zoom * 0.5f;
float scaledViewportHeightHalfExtent = cam.viewportHeight * cam.zoom * 0.5f;
float xmax = pxWidth;
float ymax = pxHeight;
// Horizontal
if (cam.position.x < scaledViewportWidthHalfExtent)
cam.position.x = scaledViewportWidthHalfExtent;
else if (cam.position.x > xmax - scaledViewportWidthHalfExtent)
cam.position.x = xmax - scaledViewportWidthHalfExtent;
// Vertical
if (cam.position.y < scaledViewportHeightHalfExtent) {
cam.position.y = scaledViewportHeightHalfExtent;
}
else if (cam.position.y > ymax - scaledViewportHeightHalfExtent)
cam.position.y = ymax - scaledViewportHeightHalfExtent;
cam.update();
이 아닌 수직 방향, 수평 방향에 대해 완벽하게 작동합니다. 수직 방향은 맵 크기의 절반만큼 오프셋 된 것처럼 보입니다.
가 어떻게 등각 수직 제한에 직교 수직 한계를 변환합니까 : 여기에 문제를 설명 GIF 파일이다?
또한 카메라의 y = 0 위치가 화면 중앙에있는 것처럼 보입니다.
다른 가능한 중요한 정보 :
- 타일 등,
- 타일
- OrthographicCamera 패닝에 사용되는 픽셀을 선별하도록 설정 뷰포트 사용할 IsometricTiledMapRenderer
- ExtendViewport를 사용하여 렌더링 512 X 256 픽셀이다 확대 .