Я работал над libtcod / C ++ roguelike, и столкнулся с небольшой проблемой.
Когда игрок проходит между этажами, предметы с предыдущего этажа остаются на новой карте, оказываясь в стенах, и каждый раз, когда я иду между этажами, все больше предметов генерируется, пока карта не будет завалена.
Есть ли способ сохранить конкретный пол (возможно, с начальным числом), чтобы текущий х / у актеров был сохранен для перезагрузки позже?
Создать Map
класс, в котором хранятся детали карты (стены, лестницы и т. д.), предметы на полу и любые монстры. Тогда вы можете создать std::map<int, Map>
ключом является номер этажа.
Затем, когда вы меняете полы, вы проверяете std::map
чтобы увидеть, если Map
объект для этого этажа существует, если он действительно загружает его, если не создает новый Map
,