HI all, irgendwie steh ich mal wieder auf dem schlauch.
Folgendes in einer .txt datei steht z.B.
Quotejkhjzndnkjhkiedfnckjnkj ckjlcnnc jkj ijn"$%"§$bn nbedf"fhb width="5"nmjkhk"üoy0ß20"3hight="5"90489sjcnu3ujkmcmnm
Nun möchte ich das width="5" und hight="5" herauspfrimeln und in einer neuen .txt untereinander abspeichern (speicher is kein problem ;) )
Nun aber die "5" kann aber genauso "1352" heisen, hier sind also der text um die "width" variable genaus so der wert "5"
Nur eben solche schlüsselwörter wie width=" sind immer gleich.
Warum das ganze, im netz habe ich einen spassigen Mapeditor gefunder der nicht so überfrachtet ist und trotzdem einen gewissen Komfort hat.
Er selber ist in JAVA geschrieben und speichert Maps als .tmx (schaut wie xml aus) und das kann man per readline gut auslesen.
Die eigendlichen map/layerdaten sind kein problem, hauptsächlich geht es mir um die versions info, Tile grösse, Tileset namen, und die Map grösse.
Und genau diese daten sind hintereinander geschrieben.
Das ist mal eine beispielmap mit 2 layer:
oh dear. Einen XML parser.
Mach eine Funktion für jeden Eintrag:
Read_image
Read_Tile
Read_Tileset
Read_Properites:
Read_Property:
usw.
darin parst Du immer nach einem "<" (mit MID$) und nimmst das nächste Wort. beginnt's mit "/", ist der Eintrag fertig, RETURN.
dann parst Du alle unter-einträge und gibst die an die jeweilige Funktion ab.
Nützliche Funktionen:
TrimLeft$: a$ // links alles " " und "\t" abschneiden.
SplitProps: a$, output$[] // alle attribut="wert" trennen
geht so:
trimleft
such nach nächstem "="
such nach "\"" (Start von Wert)
Such nach nächsten "\"" nach dem Start+1 = End von Wert
REDIM output[anzahl+1][2]
output$[anzahl][0]=name$
output$[anzahl][1]=wert$
INC anzahl,1
Danke Gernot, werd mich gleich mal ran machen.
Im Englishen Forum hat einer ja einen Link zum Devil editor geschrieben.
Der ist nicht schlecht, einfach und nicht so überladen, leider kann der nur einen Layer dafür kann man die map datei super einfach laden :) .
Der nächste Favorit ist eben Tiled von http://mapeditor.org der ist auch super einfach zu handhaben und er kann Layer :)
aber die map wird halt als XML gespeichert.
Hier hoffe ich einen einfachen Konverter zu schreiben der ein Byte file ausgibt.
Konverter TMX zur byte datei geht :)
Schreib jetzt mal einen einfachen loader.
Gooovy!
Bin gerade am Testen, kleine Bug hatte sich eingeschlichen ;) , vieleicht lade ich später die sachen mal hoch, bzw. morgen.
Öh für was solls das Gut sein?
Sprites laden kann ich auch einfacher ^^
Geht nicht um die Sprites sondern um das Map format,
da der editor in Java geschrieben ist, ist der auch wieder platform unabhängig und er kann layer.
Ist echt lustig das ding :)
Musst Du mal selber testen.
Layer kann ich auch ohne einen Fertig editor machen ;)
Wenn ich sowas mache, schreib ich mir selber einen Editor, der auf das Game angepasst ist, damit kann ich dann alles setzen, z.B Enemys Collboxen usw...
Ja. da hast Du schon recht,
aber ist doch schön, einfach schnell einen Editor nehmen zu können, ne einfache map erstellen und sich dann
nur noch auf seine eigene Gameengine zu konzentrieren.
Auch für anfänger ist sowas gut, wenn sie sich gleich ne map schnappen und dann loslegen können.
Später, wenn man grössere Projekte anfängt, kömmt man eh nicht drum herum sich einen angepassten Editor zu schreiben.
Für einfache JuR, Arkanoid, ... Games reichts, und ich hab gerade spass an dran :)
Ja, ich find's auch genial. Übrigens: irc://irc.remakes.org/#glbasic ;)
Mappy wär doch besser?
Da sollte mal einer nen Port machen !