저는 libtcod/C++ roguelike에서 일해 왔으며 작은 문제가 발생했습니다.아이템 및 몬스터 위치 추적
플레이어가 바닥을 통과하면 이전 층의 항목이 새지도에 머물러 벽에 올라가고 바닥에 갈 때마다지도가 습격 될 때까지 더 많은 항목이 생성됩니다.
액터의 현재 x/y가 나중에 다시로드되도록 보존되도록 특정 바닥 (시드가있는 경우)을 저장할 수있는 방법이 있습니까?
저는 libtcod/C++ roguelike에서 일해 왔으며 작은 문제가 발생했습니다.아이템 및 몬스터 위치 추적
플레이어가 바닥을 통과하면 이전 층의 항목이 새지도에 머물러 벽에 올라가고 바닥에 갈 때마다지도가 습격 될 때까지 더 많은 항목이 생성됩니다.
액터의 현재 x/y가 나중에 다시로드되도록 보존되도록 특정 바닥 (시드가있는 경우)을 저장할 수있는 방법이 있습니까?
지도 세부 정보 (벽, 계단 등), 바닥에있는 항목 및 모든 괴물을 저장하는 Map
클래스를 만듭니다. 그런 다음 키가 바닥 번호 인 std::map<int, Map>
을 만들 수 있습니다.
바닥을 변경할 때마다 std::map
을 확인하여 해당 바닥의 Map
개체가 있는지 확인합니다.로드하지 않으면 새로 입력하지 않고 Map
개체를 만듭니다.
나는 aleady가 bool을 사용하여 맵에있는 타일을 조사한 타일 구조체를 가지고 있기 때문에 withActors bool을 추가하여 타일에 액터가 있는지 확인할 수 있습니까? –
당신은 할 수 있겠지만, 왜 당신이 그것을 '타일'구조에 저장하고자하는지 볼 수는 없습니다. – PomfCaster
지도를 생성하는 BSP function은 맵을 생성 한 다음 isExplored가 true인지 여부를 확인하여 맵을 생성합니다. 나는 배우를 위해 똑같이 할 수 있다고 생각했다. (지도를 만든 다음, 배우 중 어느 것이 위치를 바꿨는지 확인한다.) –
지도와 그 내용을 어떻게 저장하고 있습니까? – PomfCaster
지금은 PRNG에 따라 아이템을 놓은 다음 플레이어가 레벨을 내려 갔을 때 아이템을 삭제하는 것입니다. 나는 내지도 -> 저장 (지도의 FOV 유지)에 저장하려고 시도했지만 해결할 수없는 12 가지 오류가 발생합니다. –