我试图做一个第一个超级马里奥级别的翻拍。除了平铺以外,我几乎都能成功。如果任何人都可以快速浏览我的代码并解释我做错了什么,那会很棒!我已经解决了几天了。谢谢!此外,我不能发布图片,直到我的声望更高,所以这里有一个链接。我与LibGDX TileMaps很难过
http://dl.dropbox.com/u/88813088/upload.html
首先,这里是我的影像地图集。它命名为 “world.png”:
(链接的网站上的第一张图片)
其次,这里就是我试图产生:
(网站中第二张图片)
我保存TMX文件,并使用TexturePacker后,我得到这样的结果:
(网站中最后一张图片)
它好像瓷砖ATL因为没有被分割成32x32位。相反,每32个像素,整个图像一次又一次地显示在彼此之上。 这是我的其他代码。我希望你们中的一位能帮我修复它。这将是壮观的。
这是我的主要Java代码。它被命名为“MainGame.java”:
package com.chanceleachman.marioExample.Screens;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Screen;
import com.badlogic.gdx.graphics.GL10;
import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.graphics.g2d.tiled.TileAtlas;
import com.badlogic.gdx.graphics.g2d.tiled.TileMapRenderer;
import com.badlogic.gdx.graphics.g2d.tiled.TiledLoader;
import com.badlogic.gdx.graphics.g2d.tiled.TiledMap;
import com.chanceleachman.marioExample.MarioExample;
public class MainGame implements Screen {
OrthographicCamera camera;
TileMapRenderer tileMapRenderer;
TiledMap map;
TileAtlas atlas;
private MarioExample game;
public MainGame(MarioExample game) {
this.game = game;
}
@Override
public void render(float delta) {
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT); // #14
Gdx.gl.glClearColor(0, 0, 1, 1);
tileMapRenderer.render(0, 0, 800, 480);
camera.zoom = 10;
}
@Override
public void resize(int width, int height) {
}
@Override
public void show() {
camera = new OrthographicCamera(Gdx.graphics.getWidth(),
Gdx.graphics.getHeight());
map = TiledLoader.createMap(Gdx.files.internal("map/map.tmx"));
atlas = new TileAtlas(map, Gdx.files.internal("map/"));
tileMapRenderer = new TileMapRenderer(map, atlas, 32, 32);
}
}
这是我的来自Tiled程序的Tmx文件。它被命名为“map.tmx”:
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.0" orientation="orthogonal" width="25" height="15" tilewidth="32" tileheight="32">
<tileset firstgid="1" name="world" tilewidth="32" tileheight="32">
<image source="level.png" width="512" height="32"/>
</tileset>
<layer name="Tile Layer 1" width="25" height="15">
<data encoding="base64" compression="zlib">
eJxjZGBgYBzFo3gUj+JRPKwwAFOoAXg=
</data>
</layer>
</map>
这是我的地图打包文件代码。它被命名为“地图packfile”:
level.png
format: RGBA8888
filter: Nearest,Nearest
repeat: none
level
rotate: false
xy: 0, 0
size: 480, 32
orig: 480, 32
offset: 0, 0
index: 0
我认为这只是总结它。对任何回应此事的人,非常感谢!哦,还有,原来这里是我的教程如下:
再次,谢谢!如果我留下任何重要的东西,请告诉我! :)
在发布之前,我完全遵循了这一点!哈哈。我也有这个问题,渲染不起作用!我能够得到这个工作,但不是平铺。我会继续鼓捣你写的方法。如果你已经使用该工具,我应该可以。谢谢。 –
我的解决方案如何工作? – Flawyte
是的,我让我在几分钟前工作。谢谢! –