최대한 큰 타일 맵을 사용하여 생존 게임을 만들고 싶습니다. 나는 Lua와 함께 Love2D 게임 엔진을 사용하고있다. 현재 2 차원 배열로지도를 생성 중입니다. 이것은 아마도 10x10 타일 맵에 적합합니다. 나는 그것들을 가능한 한 크게 만들고 싶다. 최소 1000x1000-100000x100000입니다. 그러나 그 juat는 일했다. 나는 또한 그것을 덩어리로 쪼개는 것에 대해 생각했다. 그러나 나는 아이디어가 없다. 나는 다른 작은 타일 맵에서 그 덩어리들을 나누겠습니까? 아니면 내가 어떻게 할 수 있니? 누구든지 나를 도울 수 있습니까?큰 타일 맵을 효율적으로로드하는 방법
1
A
답변
1
"공간 분할"에 대해 일반적으로 읽으십시오. BSP/Quadtree/k-D 트리에주의를 기울여보십시오.
청크의 크기가 같고 일정한 격자 모양으로 배치되고 전체 크기가 제한되어 있으면 모든 것을 매우 단순하게 만들 수 있습니다.
청크를 x 축/y 축으로 구성된 청크 색인으로 구성된 이름으로 파일에 저장합니다. 이러한 이름은 청크의 ID로 작동하며 파일 시스템은 세계를 저장하는 db로 작동합니다. 일부 청크는 완전히 사라져있을 수 있습니다. 즉, 세계 어느 곳에도 아무 것도 없다는 것을 의미합니다.
지도의 일부분을 화면에 표시해야하는 경우 이미로드 된 청크가 필요한지 확인합니다. 표시해야 할 부분의 좌표를 알고, 청크 ID를 만들고, 일부 캐시 (루아 테이블)를 확인하고, 청크가없는 경우 - 같은 이름의 파일을 열어보십시오. 파일이로드 된 경우 - 캐시에 추가합니다 (그렇지 않은 경우) - 표시 할 아무 것도없는 신호를 빈 더미에 추가하십시오.
스택 오버플로에 오신 것을 환영합니다. 이 질문은 너무 광범위합니다. http://stackoverflow.com/help/how-to-ask – Mikkel
당신은 무엇을 시도 했습니까? 자신이 일하는 것에 대한 최소한의 예를 갖고 있습니까? 또한 @Mikkel에 동의합니다. 너무 광범위합니다. '청크 별로드 맵'을 간단히 검색하면 도움이 될 수 있습니다. – DavisDude