1

開発中のスクロール ゲームで 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();
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 に答える