我正在开发的滚动游戏中遇到 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();