캐릭터가 임의로 생성 된지도를 실시간으로 움직이는 게임을 작성했습니다 (흥미로운 데이터 구조 문제입니다.). 지도는 캐릭터 (아마도 20-60 타일) 주변의 원으로 볼 때 생성되므로 데이터가있는 곳, 매우 밀도가 높습니다. 그리고 모두 그리드에 있습니다. 그러나 데이터가없는 곳에는 거대한 생성되지 않은 공간이있을 수 있습니다. 캐릭터는 거대한 원안을 걸을 수 있습니다. 예를 들어, 광대 한 빈 공간 주변에 타일 링을 만들 수 있습니다.그리드 용 최적의 고밀도 이진 공간 파티션
간단한 매트릭스는 엄청난 양의 불필요한 오버 헤드를 발생시키고 많은 공간을 낭비합니다. 하지만 일반적인 BSP는 밀도가 높고 그리드와 유사한 데이터 특성으로 인해 성능이 크게 떨어지는 것처럼 보입니다.
무엇을 제안합니까? 행렬 - quadtrees - 두 가지 하이브리드?
샘플 코드가 주석 처리되지 않았기 때문에 실제로 많이 보지 않았습니다 ... 매우 간단한 솔루션을 설명하는 것이 중요합니다. 조경을 행렬에 분할하고 상대 좌표 (액터에)를 사용하여 데이터를 검색하십시오. 그렇게하면 다른 행들이 초기화되지 않은 상태에서 최대 4 개의 행렬의 데이터 만 생성/검색합니다. –