開発中のスクロール ゲームで TiledMapRenderer に問題があります。現在、Tmx Map で 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();