wie lese ich eine leveldatei aus den assets bei libgdx?

...komplette Frage anzeigen

3 Antworten

In Libgdx gibt es die sogenannten FileHandles. Diese werden in verschiedene Typen unterteilt:

- Classpath: Werden direkt in das Jar/Apk gepackt und sind read-only

- Internal: Pfad im Root-Ordner der Applikation (Desktop) bzw. innerhalb der Assets (Android). Fallback auf Classpath Filehandle. Files sind read-only.

- Local: Pfad im Root-Ordner der Applikation (Desktop) bzw. privater Applikationsspeicher (Android). Sollte beschreibbar sein, soweit ich weiß.

- External: SD-Card-Root (Android) bzw. Benutzer Home Verzeichnis (Desktop).

- Absolute: Voll Qualifizierter Pfad. Da die Pfade aber vom System, auf welchem das Game läuft abhängig sind, wird davon abgeraten, diesen FileHandle zu verwenden.

Für dich wäre dann wohl Internal der richtige FileHandle. Im Prinzip ist es Libgdx egal, was für Dateien du ausließt, auswerten musst du die Dateien letztendlich selbst.

Antwort bewerten Vielen Dank für Deine Bewertung

Ich programmiere auch zurzeit Spiele mit LibGdx und versuche die Levels nachtürlich dynamisch (also variable) zu gestalten und wenn du eine Datei auslesen willst, würde ich dir einfach mal empfehlen den BufferedReader von Java zu benutzen. Libgdx wird ja mit Java genutzt also kannst du das sicher einbinden. Es funktioniert wie folgt:

  1. BufferedReader reader=new BufferedReader(new FileReader(Pfad));
  2. String content=reader.readLine();

Dabei kann eventuell eine IOException gethrowt werden, welche du mit try{} catch(IOException io){} abfangen kannst. In dem Fall würde nur die erste Zeile gelesen werden (also bis zum ersten newline \\\\n). Wenn du aber alle Zeilen lesen willst musst du das in eine Schleife packen oder du  machst alles in eine Zeile ohne Newlines, was zwar für das menschliche Auge doof wäre, aber durchaus für den Computer lesbar ist.

MFG keksklauer4 ;)

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Springrbua
13.04.2016, 08:02

Ich würde da nicht auf BufferedReader zurückgreifen, da Libgdx eigene Methoden dafür vorsieht. Diese Methoden haben dann den Vorteil, dass sie auf die verwendete Plattform (Android, Desktop, HTML...) richtig reagieren. Um Daten aus Files auszulesen kannst du, wie in meiner Antwort erwähnt, auf die FileHandles zurückgreifen. Hier (https://github.com/libgdx/libgdx/wiki/File-handling#reading-from-a-file) wird beschrieben wie.

Lg

0
Kommentar von hdhdhddedede
14.04.2016, 16:00

danke werde ich sowieso in der Entwicklungsphase machen da die Map etwas größer werden soll habe ich einen Editor für die Map gemacht... aber wenn ich die APP irgendwie veröffentliche kann ich ja den User nicht auffordern sich eine extra Datei runterzuladen das er die Map hat deswegen dachte ich das ich wenn die map fertig ist sie einfach in eine .txt Datei in den Assets Folder packe

0

Ich kenne mich mit libGDX nicht so gut aus, und werde deswegen auf die Frage auch nicht richtig Antworten, aber du solltest solche Fragen bei StackOverflow posten, da bekommst du gute Antworten.

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?