Karteneditor Wie speicher ich meine Karte?



  • Also der Titel sagt eigentlich schon alles.
    Ich hab mal einen kleinen Karteneditor geschrieben in dem ich einen
    2 dimenionalen Byte Array habe. in dem ich abspeicher welcher Geländetyp in einem Tile liegt
    jetzt möchte ich diesen in einer Datei speichern. Technisch gwsehen kein Problem.
    Aber was für ein Format benutzte ich da?
    Bei anderen Spielen werden ja auch keine Textdateien verwendet in denen dann die Zahlen einfach hintereinnander geschrieben werden. oder doch?
    ich will eigentlich nur wissen wie sowas üblicherweise gemacht wird.
    Wenn sich jemand damit auskennt freue ich mich über jede anregung.

    danke muli



  • naja bei nem einfach 2d gelände das auf ein tileset aufbaut reicht einfach die speicherung der zahlen in deinem array.



  • Du musst diese Daten nicht als Textdatei, sondern als Binärdatei speichern. Falls du mit C++ programmierst schau mal ins Forum-Faq, da steht was dazu. Das kann dann auch keiner mehr lesen.

    Ich glaub mit C# könnte man einfach deine Klasse Map serializen und danach einfach wieder einlesen. Das weiß ich aber nicht so genau.



  • Delryn schrieb:

    Du musst diese Daten nicht als Textdatei, sondern als Binärdatei speichern.

    Mann muss nicht, aber man kann. Und ab einer bestimmten Größe ist es auf jeden Fall sinnvoll, zumindest inige Teile binär zu speichern. Das Problem mit den "offenen" Dateien kann man später auch noch mit zip u.ä. umgehen. f'`8k

    Bye, TGGC (\-/ returns)



  • wenn du willst poste deine mail adresse und ich schick dir meinen editor, dann kannst du dir ansehen wie ichs gemacht habe (SDL)



  • nun würde mich dieser aber auch interessieren 😉



  • Die Binärdatei hat auch den Vorteil das nichts interpretiert werden muss, wenn man es richtig anstellt. Einfach das passende Array bereitstellen und in einem Rutsch reinladen, fertig 🙂



  • Dabei fällt mir eigentlich ein, wie umgeht man am sinnvollsten die Problematik der nicht eindeutigen Datentypengrößen?
    Man stelle sich vor, man muss urplötzlich mit nem Compiler arbeiten, dessen int nut 16 Bit hat...



  • DocJunioR schrieb:

    Dabei fällt mir eigentlich ein, wie umgeht man am sinnvollsten die Problematik der nicht eindeutigen Datentypengrößen?
    Man stelle sich vor, man muss urplötzlich mit nem Compiler arbeiten, dessen int nut 16 Bit hat...

    long und short nehmen


  • Mod

    DocJunioR schrieb:

    Dabei fällt mir eigentlich ein, wie umgeht man am sinnvollsten die Problematik der nicht eindeutigen Datentypengrößen?
    Man stelle sich vor, man muss urplötzlich mit nem Compiler arbeiten, dessen int nut 16 Bit hat...

    mit einem assert(sizeof(int)!=4);
    und damit es selbst dann richtig läuft wenn der assert sonst ausschlagen würde nimmt man dafür typedefs bzw #defines unter c um eigene datentypen zu definieren. sehr üblich sind u8,s8,u16,s16,u32,s32,f32. auf einer neuen plattform muss man dann also nur die typedefs umstellen, notfalls könnte man dann sogar auf einem 4bit system ein 32bit datentyp durch eine klasse ersetzen.



  • oggs@gmx.at wenn ihr einen mapeditor in SDL sehn wollt


Anmelden zum Antworten