vorrei postare la mia soluzione qui e quello che avevo provato per Libgdx su questo problema.
-
T1. Realizza il foglio nativo originale (nessun file di atlante) scaricato da qualche parte nel padding 2.
A1. Questo sarebbe impossibile per il reimballaggio della spritesheet che non hanno atlante, anche se si trova uno strumento sezione/splitter, dovrebbe essere un po 'di immagini che devono essere correttamente per richiuderla TiledMap (.tmx)
A1 (aggiornato). Script fornito da @Nine Magics sarebbe il modo migliore per farlo! (Io uso questo come la mia soluzione finale)
-
T2. Uso TiledMapPacker
quella fornita da libgdx-nighty o GDX-toolg, il codice batch dovrebbe essere:
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. L'output .tmx che non può essere letto da Tiled Se si utilizza il percorso di cartella complesso per categoria i file .png
. E il caricamento del file di output potrebbe non riuscire a caricare entro il AtlasTmxMapLoader
.
-
T3. Correzione posizione telecamera, imposta la posizione della fotocamera su intero. Il codice è piaciuto @ Julian o @ Strangecat da libgdx tiledmap flicker with Nearest filtering
A3. Io uso questa soluzione senza alcun problema e pubblichiamo anche il mio codice diverso da loro.
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);
Ed anche caricarlo con 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);
Se è stato utilizzato PPM e desidera spostare pixel per pixel, è possibile utilizzare questa correzione intero per il vostro gioco, se non si può solo convertire la posizione a numero intero.
Ho quasi perso tutto il giorno per fare slancio, spero che queste indagini possano aiutare tutti gli sviluppatori di giochi :)
duplicatePadding! Grazie! – Pasha
duplicatePadding ha risolto il mio problema anche – Aleris
Ok e come si usa questo ...? Cosa dovrebbe andare in "fonte" "destinazione" e "nome" ?? origine = tileset, credo? – SuppressWarnings