tôi sẽ gửi giải pháp của tôi ở đây và những gì tôi đã cố gắng cho Libgdx về vấn đề này.
-
T1. Tạo spritesheet gốc (không có tập tin bản đồ) tải xuống từ đâu đó để đệm 2.
A1. Đây sẽ là không thể đối với đóng gói lại spritesheet mà không có bản đồ, ngay cả khi bạn tìm thấy một công cụ Slice/splitter, nó phải là một loạt các hình ảnh mà cần phải đóng gói lại đúng cho TiledMap (.tmx)
A1 (Cập nhật). Tập lệnh do @Nine Magics cung cấp sẽ là cách tốt nhất để làm điều này! (Tôi sử dụng như là giải pháp cuối cùng của tôi)
-
T2. Sử dụng TiledMapPacker
được cung cấp bởi libgdx-nighty hoặc GDX-toolg, Mã hàng loạt nên:
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. Đầu ra .tmx không thể đọc được bởi Tiled Nếu bạn đang sử dụng đường dẫn thư mục phức tạp để phân loại các tệp .png
của mình. Và tệp đầu ra có thể không tải được bởi AtlasTmxMapLoader
.
-
T3. Chỉnh vị trí máy ảnh, đặt vị trí máy ảnh thành số nguyên. Mã được thích @Julian hoặc @strangecat từ libgdx tiledmap flicker with Nearest filtering
A3. Tôi sử dụng giải pháp này không có vấn đề gì và cũng đăng mã của tôi khác với chúng.
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);
Và cũng load nó với 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);
Nếu bạn sử dụng PPM và muốn di chuyển từng pixel, bạn có thể sử dụng hiệu chỉnh số nguyên này cho trò chơi của bạn, Nếu không bạn chỉ có thể chuyển đổi vị trí thành số nguyên.
Tôi gần như lãng phí cả ngày để slove điều này, hy vọng điều tra này có thể giúp mọi nhà phát triển trò chơi :)
duplicatePadding! Cảm ơn! – Pasha
duplicatePadding đã giải quyết được sự cố của tôi cũng là – Aleris
Ok và bạn thực sự sử dụng tính năng này như thế nào ...? Điều gì sẽ đi vào "nguồn" "đích" và "tên"? source = tileset Tôi tin? – SuppressWarnings