1

我正在开发的滚动游戏中遇到 TiledMapRenderer 问题。我目前正在使用带有 Tmx 地图的 BatchTiledMapRenderer(我也尝试过使用普通的 TiledMapRenderer)。我的相机视图(我正在使用舞台)是 16x10 瓷砖,地图是 98x14 瓷砖长。该地图在我的计算机上以 900x510 分辨率呈现良好,但是当我将其提高到 1280x720 分辨率时,主要是当我将它移植到我的手机上时,有时滚动不是那么流畅;但是在大多数情况下,它是平滑的。我还应该提到我的瓷砖组是由 64x64 瓷砖制成的。

我目前对自己做错了什么感到困惑,如果您能提供任何建议,我将不胜感激。以下是部分代码。

相机位置在我的mainCharacter类中更新,该类扩展了Actor类,并在游戏运行时更新每一帧。

在我的Actor act方法里面:

world.getCamera().position.set(this.getX(), (MyFirstGame.CAMERA_HEIGHT+2)/2f, 0);

在我的Stage课堂上:

private TiledMap map;
private BatchTiledMapRenderer renderer;

Stage构造函数中:

Assets.manager.setLoader(TiledMap.class, new TmxMapLoader(new InternalFileHandleResolver()));
Assets.manager.load("data/maps/" + level + ".tmx", TiledMap.class);
Assets.manager.finishLoading();
map = Assets.manager.get("data/maps/" + level + ".tmx");
renderer = new OrthogonalTiledMapRenderer(map, 1f / 64f);

Stage渲染方法中:

this.getCamera().update();
renderer.setView((OrthographicCamera) this.getCamera());
renderer.getSpriteBatch().begin();
renderer.renderTileLayer(skyLayer);
renderer.renderTileLayer(layer2);
renderer.renderTileLayer(layer3);
renderer.renderTileLayer(layer4);
renderer.renderTileLayer(layer5);
renderer.renderTileLayer(foregroundLayer);
renderer.renderTileLayer(waterLayer);
renderer.getSpriteBatch().end();

super.draw();
4

1 回答 1

0

它实际上对我这样做的原因很简单,即我启动的游戏的其他状态(崩溃)仍在运行。为了解决这个问题,我在我的main(String[] args)方法中这样做了:

try {
public static void main(String[] args) {
    config = new LwjglApplicationConfiguration();
    config.vSyncEnabled = true;
    config.width = 1920;
    config.height = 1080;
    config.useGL20 = true;
    config.title = "AHH";
    new LwjglApplication(new GameClass(), config);
}
catch (Exception e) {
Gdx.app.exit();
System.out.println(e);
}

另外,我建议通过打开任务管理器确保游戏的所有其他实例都已关闭。

于 2013-12-31T01:35:09.830 回答