Первое, что нужно сделать, это узнать больше о XML и о представлении / структурировании / абстрагировании данных.Например, обычно неразумно кодировать, например, элемент «короткий меч» внутри комнаты, как вы.Скорее вы захотите дать определение этого элемента (или его шаблон) где-то еще и иметь только ссылку на него, возможно, с некоторыми дополнительными параметрами внутри узла комнаты.Вы, вероятно, также захотите научиться использовать атрибуты (все данные не одинаковы, некоторые данные должны быть атрибутами).
Как только вы это сделаете,фактический материал TinyXML прост.TinyXML настолько прост, насколько это возможно:
- Согласитесь на некоторую семантику.Запишите их, запомните, следуйте им при создании файлов XML.
- Создайте
TiXmlDocument
, присвойте ему имя файла данных - Вызовите
LoadFile
в объекте документа - Позвоните
FirstChildElement
, чтобы получить корневой узел (обратите внимание, что если у вас есть более одной комнаты в XML, вам нужно иметь отдельный корневой узел!) - Перебирайте детей, используя
FirstChildElement
и NextSiblingElement
. - Теперь вам нужно запомнить структуру вашего XML-файла (или семантику его элементов).TinyXML не может волшебным образом понять это для вас .
- Используйте
FirstChildElement
и NextSiblingElement
таким же образом, как и для узлов комнаты для "чего-либо внутри" каждой комнаты (независимо от того, что вы решили, чтоможет быть) выяснить, как выглядит каждая комната и что в них. Вы должны знать, что означают эти данные, TinyXML не может знать такого рода вещи, он просто предоставляет вам структурированные данные. - Разрешить ссылки и настроить соответствующие структуры данных (например, когда у вас естьчто-то вроде
<door to="guard_room" x="5" y="3" status="locked" />
создайте необходимые ссылки, чтобы ваша игра реагировала соответствующим образом.
(и не забывайте проверять наличие ошибок)
Учебники на сайте TinyXML также оченьлегко понять (последний раз я смотрел это 2-3 года назад, вы могли бы просто скопировать и вставить их). Если они действительно представляют значительную проблему, я бы на время пересмотрел идею написания RPG. Я неговорить вечно, но, по крайней мере, пока у вас не будет достаточно опыта, чтобы следовать им.