Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Zendee
unregistriert
Zitat
Das wird von Java und C# (bzw .NET) hervorragend unterstützt und bietet ein hohes Maß an Overhead.
Zendee
unregistriert
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Zendee« (14.03.2012, 19:50)
Vorallendingend wenn du auch andere Daten wie Audio oder Grafik mit in der Datei speichern willst, bist du mit XML am Ende.
[...] da lob ich mir doch das guten alten Binärformat.
Quellcode |
|
1 2 3 |
level.loadFromXml(level1.xml) ... level.loadFromXml(level2.xml) |
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von ».:!Batzer!:.« (14.03.2012, 20:01)
Zendee
unregistriert
Zitat
Und so groß ist der Overhead nun auch wieder nicht.
Quellcode |
|
1 |
<GameField Width = "33343" Height = "9876"> |
Zitat
und es ging darum,wie man ein Level aus so einer XML lädt
C#-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
XmlNode Node = XMLdoc.SelectSingleNode("GameField"); //Spielfeldknoten raussuchen this.GameField = new Gamefield(int.Parse(Node.Attribute["Width"].Value), int.Parse(Node.Attribute["Height"].Value))) //Spielfeld bestimmter Größe erstellen XmlNodeList EnemyNodes = Doc.SelectNodes("Enemies\Enemy"); //Feinde Knoten in der XML-Datei auflisten this.Enemies = new LinkedList<Enemy>(); //Neue Liste mit Feinden foreach (XmlNode EnemyNode in EnemyNodes) { Enemy NewEnemy = new Enemy(Enum.Parse(EnemyNode.Attributes["Type"].Value)); //Neuen Feind eines bestimmten Types NewEnemy.X = int.Parse(Node.Attributes["X"].Value); //Position einlesen NewEnemy.Y = int.Parse(Node.Attributes["Y"].Value); XmlAttribute WeaponAttr = EnemyNode.Attributes["Weapon"]; //Waffe auslesen NewEnemy.Weapon = WeaponAttr == null ? Weapons.ChewingGum : Weapons.Parse(WeaponAttr.Attributes.Value); //Wenn Waffe nicht festgelegt, Standardwaffe verwenden (Kaugummi :)) this.Enemies.Add(NewEnemy); } |
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Spiele Programmierer« (14.03.2012, 20:38)
Treue Seele
Wohnort: Düsseldorf
Beruf: Manager of Developer Relations at Hazelcast, Inc. & Consultant for Scaleable Gameserver Systems
Leider weiß ich jetzt immer noch nicht genau wie dieses Löschen oder neu Initialisieren aussieht
[...] wobei es (solange keine Datentransporte über ein Netzwerk stattfinden) es nur bedingt wichtig ist ob du 8 oder 20Byte brauchst.
Zitat
wichtig ist ob du 8 oder 20Byte brauchst.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Spiele Programmierer« (14.03.2012, 20:54)
Werbeanzeige