würde ich meine Lösung hier posten und was hatte ich versucht, für Libgdx über dieses Problem.
-
T1. Erstellen Sie ein Original-Spritesheet (keine Atlas-Datei), das von irgendwo auf Padding 2 heruntergeladen wurde.
A1. Dies würde für das Umpacken der spritesheet unmöglich sein, dass kein Atlas haben, auch wenn Sie ein Stück/Splitter-Tool zu finden, sollte es ein paar Bilder, die richtig für TiledMap (TMX)
A1 umpacken sein müssen (Aktualisiert). Skript, das von @Nine Magics zur Verfügung gestellt wird, wäre der beste Weg, dies zu tun! (Ich benutze dies als meine endgültige Lösung)
-
T2. Verwenden TiledMapPacker
die von Libgdx-nighty oder GDX-toolg vorgesehen ist, sollte der Chargencode sein:
java -classpath "gdx.jar";"gdx-natives.jar";"gdx-backend-lwjgl.jar";"gdx-backend-lwjgl-natives.jar";"gdx-tiled-preprocessor.jar";"extensions/gdx-tools/gdx-tools.jar" com.badlogic.gdx.tiledmappacker.TiledMapPacker "PathToYourProject\android\assets\RawMap" "PathToYourProject\android\assets\Map" --strip-unused
A2. Die Ausgabe .tmx, die nicht von Tiled gelesen werden konnte Wenn Sie komplexe Ordnerpfad verwenden, um Ihre .png
Dateien zu kategorisieren. Und möglicherweise konnte die Ausgabedatei nicht geladen werden, indem AtlasTmxMapLoader
.
-
T3. Kamerapositionskorrektur, Kameraposition zu Ganzzahl machen. Der Code mochte @Julian oder @strangecat von libgdx tiledmap flicker with Nearest filtering
A3. Ich benutze diese Lösung für kein Problem und poste auch meinen Code, der sich von ihnen unterscheidet.
float cameraX = (int)(mainCamera.position.x * Game.PPM_X)/Game.PPM_X;
float cameraY = (int)(mainCamera.position.y * Game.PPM_X)/Game.PPM_X;
float cameraZ = mainCamera.position.z;
mainCamera.position.set(cameraX, cameraY, cameraZ);
und laden sie auch mit TmxMapLoader.Parameters
TmxMapLoader.Parameters params = new TmxMapLoader.Parameters();
params.textureMinFilter = Texture.TextureFilter.Linear;
params.textureMagFilter = Texture.TextureFilter.Nearest;
params.generateMipMaps = true;
assetManager.load(TILED_MAP_SETS.FIRST_MAP, TiledMap.class, params);
Wenn Sie PPM verwendet und wollen Pixel für Pixel bewegen, könnten Sie diese Ganzzahl-Korrektur für Ihr Spiel verwenden, wenn Sie nicht nur könnte konvertieren die Position zu Integer.
Ich habe fast den ganzen Tag verschwendet, um dies zu tun, hoffe diese Untersuchung könnte jedem Spieleentwickler helfen :)
duplicatePadding! Vielen Dank! – Pasha
duplicatePadding löste mein Problem auch – Aleris
Ok und wie benutzt du das eigentlich ...? Was soll in "Quelle" "Ziel" und "Name" gehen ?? source = tileset Ich glaube? – SuppressWarnings