【问题标题】:My Tiled map is not being rendered in libgdx我的平铺地图没有在 libgdx 中呈现
【发布时间】:2017-08-02 01:12:47
【问题描述】:

过去几天我一直在试图找出我的代码出了什么问题。我试图在 libgdx 中渲染瓷砖地图(.tmx),但它没有渲染,它只是显示一个没有错误的红屏。我已经重写了几次代码,我总是得到相同的结果。

我的代码:

public class Main extends ApplicationAdapter {
SpriteBatch batch;
TiledMap map;
TmxMapLoader loader;
OrthogonalTiledMapRenderer renderer;
OrthographicCamera camera;

@Override
public void create () {
    batch = new SpriteBatch();
    loader = new TmxMapLoader();
    map = loader.load("TiledMaps/TestMap.tmx");
    renderer = new OrthogonalTiledMapRenderer(map);
    camera = new OrthographicCamera();
    camera.setToOrtho(false,Gdx.graphics.getWidth(),Gdx.graphics.getHeight());

}

@Override
public void render () {
    Gdx.gl.glClearColor(1, 0, 0, 1);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
    camera.update();

    renderer.setView(camera);
    renderer.render();

    batch.begin();
    batch.end();
}

@Override
public void dispose () {
    batch.dispose();
    renderer.dispose();
    map.dispose();
}

}

任何人都可以找到这里发生的事情吗?我在 android assets 文件夹的 TileMaps 文件夹中有带有 tilesheet 的 tmx 文件。

任何帮助表示赞赏,在此先感谢。

【问题讨论】:

  • 你的地图的tileWidth,tileHeight,mapWidth,mapHeight的值是多少?
  • 我认为您需要将renderer.render() 包裹在batch.begin()batch.end() 中。你可以看到here 和你在那里做的类似。

标签: java libgdx rendering tiled


【解决方案1】:

如果我理解正确,您正在尝试一些复杂的东西(地图渲染)但遇到一个简单的问题(不渲染任何东西)。

你有一个简单的程序来渲染一些东西吗?构建它以便您有一些硬编码的瓷砖渲染?构建它以正确读取和显示地图上的第一个图块?在最终将其进一步扩展以读取和显示所有图块之前,一旦您知道基础工作正常?

这就是我要解决这个问题的方法。多年来一直在编程,只是使用相同的过程让 CreateProcess 在 Windows 上以 C++ 工作。没有在我的代码中工作,所以我构建了一个空项目,它只在 notepad.exe 上运行 CreateProcess,并用 StackOverflow.com 的答案调整了一些东西,直到我让它工作,现在它是关于一点一点地添加其他复杂性所以我不会因为一次承担太多而完全迷失。

【讨论】:

  • 我不太确定你在说什么,但据我所知,我应该从只渲染 1 个图块开始,然后从那里继续?如果这就是你的意思,我不知道如何使用 libgdx api 来做到这一点,而我提供的所有代码在几个月前都有效。 @Domarius
  • 我很确定您的问题不是 libgdx 特有的,它更像是一个一般性的问题解决问题。逻辑决定了你的代码在那时和现在之间是否没有改变,其他的东西已经改变了,你需要简单地反复试验来缩小可能的范围。我在这里告诉您的不是问题的答案,而是如何找到问题的答案,这更重要:) 如果您的目标是渲染整个地图但不知道如何渲染单个图块就其本身而言,这是您跳过的重要步骤。您需要先学习基础知识。
  • 我注意到 libgdx 有一个论坛,你在那里发帖吗?但更重要的是,应该有关于如何在屏幕上渲染的教程,你应该遵循它,它可能会有一个关键的步骤来设置你错过的正确渲染。
  • 我过去让事情正确渲染我可以得到任何东西来渲染,但不是我的 tmx 文件,我使用的代码与以前工作的代码相同,所以我不明白如何学习渲染单个图块帮帮我,我错过了什么吗?
  • 嗯,就像我说的,从那时到现在,有些事情已经发生了变化,你必须分解问题,消除所有不能解决的事情,直到你有事情要做.因此,如果您确实可以渲染某些东西,那么问题就在能够渲染某些东西和渲染地图之间。
猜你喜欢
  • 1970-01-01
  • 2016-01-24
  • 2014-10-23
  • 1970-01-01
  • 1970-01-01
  • 2020-08-24
  • 2016-07-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多