타일링 된 2D 맵의 영역에 많은 수의 객체가 "영역 효과"를 갖는 게임을 작성하고 있습니다.중첩 된 공간 영역에 대한 효과적인 데이터 구조
필수 기능 :이 영역 효과
- 몇 가지가 겹치는와 같은 타일
- 에 영향을 미칠 수있는 매우 효율적으로 주어진 타일 효과의 목록에 액세스 할 수 있어야
- 지역 효과 임의의 모양을 가질 수 있지만 일반적으로 "최대 X 타일이 효과를 일으키는 대상과 거리가 있습니다."여기서 X는 작은 정수, 일반적으로 1-10입니다.
- 면적 효과는 자주 변경됩니다 객체가지도를 다른 위치로 이동으로
- 지도는
는 어떤 데이터 구조를이에 가장 적합한 것이 잠재적으로 큰 (예를 들어 1000 개 * 1000 타일) 될 수 있을까?
감사 Kylotan - 빠른 액세스를 보장하는 가장 포괄적 인 접근 방법 인 것 같습니다. 내가 이런 식으로 일을 끝낼 수도 있지만 타일 당 저장소에 대해 quadtree 형식의 접근 방식을 사용하고 목록 단위의 중복을 피하기 위해 타일 단위 목록을위한 영리한 캐시를 사용하는 것일 수도 있습니다. – mikera
어떤 이점이 있는지 이해하지 못합니다. 쿼드 트리에서 얻을 수 있습니다. 타일 맵은 일반적으로 (정의에 따라) 위치에서 타일까지의 2D 해시입니다. 일반적으로 빠른 검색 시스템이없는 경우 쿼드 트리 만 필요합니다 (예 : 타일이 아닌 연속적인 세계의 경우). – Kylotan