Я пытаюсь сделать функцию в своем приложении, которая может загружаться в объект через атрибуты в XML-файле. Я хотел бы использовать TinyXML2, поскольку я слышал, что это довольно легко и быстро для игр.Проблемы с загрузкой данных из xml с помощью TinyXml2
В настоящее время у меня есть следующий XML-файл:
<?xml version="1.0" encoding="UTF-8"?>
<Level>
<Pulsator starttime="0" type="0" higherradius="100" lowerradius="10" time="60" y="500" x="300" bpm="60"/>
</Level>
Каждый атрибут пульсатор переменной в моем классе пульсатора. Я использую функцию followign для импорта своих пульсаторов и добавляю их к вектору объектов.
void Game::LoadLevel(string filename)
{
tinyxml2::XMLDocument level;
level.LoadFile(filename.c_str());
tinyxml2::XMLNode* root = level.FirstChild();
tinyxml2::XMLNode* childNode = root->FirstChild();
while (childNode)
{
Pulsator* tempPulse = new Pulsator();
float bpm;
float type;
std::string::size_type sz;
tinyxml2::XMLElement* data = childNode->ToElement();
string inputdata = data->Attribute("bpm");
bpm = std::stof(inputdata, &sz);
if (type == 0)
{
tempPulse->type = Obstacle;
tempPulse->SetColor(D2D1::ColorF(D2D1::ColorF::Black));
}
if (type == 1)
{
tempPulse->type = Enemy;
tempPulse->SetColor(D2D1::ColorF(D2D1::ColorF::Red));
}
if (type == 2)
{
tempPulse->type = Score;
tempPulse->SetColor(D2D1::ColorF(D2D1::ColorF::Green));
}
else
{
tempPulse->type = No_Type;
}
objects.push_back(tempPulse);
}
}
Каждый раз, когда я добираюсь до корневого узла, он загружается некорректно, а childnode становится нулевым. Я использую это неправильно или есть проблема с моим XML-файлом?