Hi,
folgende Sache: Ich möchte meine Levels in einer XML-Datei speichern. So weit, so gut.
Jetzt würde mich aber interessieren, wie ihr die Datei auslesen würdet bzw. wie ihr ein level in eine solche Datei speichern würdet.
Gehen wir einfach von einem TerrainSceneNode aus, das inklusive all seiner Eigenschaften in einer Datei gespeichert und nacher wieder ausgelesen werden soll.
Eigentlich ist das ja kein Problem, aber der Code wird total ätzend lang beim Auslesen:
Code:
while(xml_reader && xml_reader->read())
{
switch(xml_reader->getNodeType())
{
case irr::io::EXN_TEXT:
break;
case irr::io::EXN_ELEMENT:
{
if(irr::core::stringw("TerrainSceneNode") == xml_reader->getNodeName())
{
position = StringToVector3df(xml_reader->getAttributeValue("pos"));
id = (xml_reader->getAttributeValueAsInt("id");
// usw.
}
break;
}
}
}
Da man das ja dann für jeden Typ einzeln machen muss (also if(irr::core::stringw("MeshSceneNode") == xml_reader->getNodeName()), if(irr::core::stringw("AnimatedMeshSceneNode") == xml_reader->getNodeName()) etc. wird der Code enorm lang und imho auch unübersichtlich.
Meie Frage: Wie kann man das vereinfachen/ändern?
Ich bin in der Doku auf irr::io::IAttributes gestoßen - aber habe nicht verstanden, was genau es damit auf sich hat und ob/wie mir das evtl. bei der Lösung meines Problems helfen könnte.
Für hilfreiche Antworten bin ich sehr Dankbar
Grüße
IRRe