저는 2D 타일 기반의 세계를 가지고 있습니다.이 세계는 간단한 배열 인 World [100] [100]을 사용하여 만들어졌습니다.2D 타일 기반 세계 타일 오브젝트를 보유하려면 어떤 유형의 컨테이너를 사용해야합니까?
게임 멀티 플레이어를 제작할 계획이므로, SERVER가 플레이어를 둘러싼 모든 타일과 클라이언트에게 필요한 정보 만 보내도록하는 것이 좋을 것이라고 생각합니다. 렌더링 할 텍스처/스프라이트와 그것을 렌더링 할 위치.
이렇게하려면 tileType (Grass, Sand, Water 등)이 있고 10 개의 TileObjects 배열을 보유하고있는 고유 한 TILE 클래스를 만드는 것이 좋을 것이라고 가정합니다. TileObject는 objectType (문자입니까? 나무입니까? 바위입니까?), int objectID (객체가 실제로 무엇이든간에 링크되어있어서 Character가 "Leeroy"임을 알고 있습니다. 젠킨스 "하고는. 렌더링을 위해 클라이언트에 Leeroy의 애니메이션 & 방향을 보낼 수)하고 필요한 경우 타일에서 & Y objectPosition (X는.이 타일을 넘어 확장 할 수 있습니다.)
를이와 내가 방법을 잘 모르겠습니다 만 하나의 타일 (충돌이 많은 타일을 사용하는 Dragon과 같은)보다 큰 물체 나 문자는 처리 할 것이지만 최상의 디자인이라고 할 수 있습니다.
TILE 클래스에 TileObjects를 저장하려면 어떤 유형의 컨테이너를 사용해야합니까? 지금은 배열이 있지만 성능에 좋을지는 의심 스럽습니다. 어떤 타일은 0 개의 TileObjects를 가질 수있는 반면, 다른 타일은 5+를 가질 수 있습니다. 벡터,지도, 연결리스트, 배열 : 나는 심각하게 나는 완전히 다른 컨테이너 유형을 주장 다양한 튜토리얼과 책을 읽고 < (10)
class Tile
{
private:
TileObject TileObjects[10]; //up to 10 objects on a single tile
TileTerrainType tileTerrainType; //GFX to display Grass, Sand, Water, Swamp, etc.
}
아무것도 이제까지 초과 의심 때문에 10을 사용했다. 나는 TileObject를 저장하는 것이 최선인지 모른다. (어떤 것들은 끊임없이 움직일 수 있고, 파괴되거나 아이템을 떨어 뜨리거나 추가하는 것과 같이 추가 될 수 있으며, 어떤 것들은 나무 나 바위처럼 움직이지 않을 수도있다.)
그냥 명확하게 - 움직이지 않는 것들 (지형 유형)과 움직이는 것들 (문자, 아이템)을 나타 내기 위해 타일을 사용하고 있습니까? – Patashu