1

概念実証として、マップを libgdx アプリに追加しようとしています。どのようにパックファイルを作成しても、com.badlogic.gdx.graphics.g2d.tiled.TileAtlasコンストラクターTileAtlas(TiledMap map, FileHandle inputDir)はそれを正しく読み取らないようです。私のタイル マップはシンプルで 2 つのタイルしかなく、外部 GUI と内部システムの両方が圧縮ファイルを生成します。

ここに問題があります.2行目を満たすために画像の1つと一致するファイル名でパックファイルに名前を付けるか、メソッドがエラーになります。タイル セット内の画像の名前ごとに 1 つずつ、2 つのパックファイルを追加すると、アトラスがメモリ内で正しく構築されていないことがわかります。ここで何が欠けていますか?タイルマップにタイルを 1 つだけにする必要がありますか?

Libgdx からのコード:

    for (TileSet set : map.tileSets) {
        FileHandle packfile = getRelativeFileHandle(inputDir, removeExtension(set.imageName) + " packfile");
        TextureAtlas textureAtlas = new TextureAtlas(packfile, packfile.parent(), false);
        Array<AtlasRegion> atlasRegions = textureAtlas.findRegions(removeExtension(removePath(set.imageName)));
        for (AtlasRegion reg : atlasRegions) {
            regionsMap.put(reg.index + set.firstgid, reg);
            if (!textures.contains(reg.getTexture())) {
                textures.add(reg.getTexture());
            }
        }
    }
4

1 に答える 1

1

com.badlogic.gdx.graphics.g2d.tiled--> 古い tiled API を使用しているようです。そのパッケージはもう存在しないと思うので、おそらく新しいバージョンをダウンロードする必要があります。

このブログ記事をチェックしてください。新しい API はまだ使用していませんが、一見すると、マップの読み込みがはるかに簡単に見えます。

于 2013-06-08T00:04:41.483 に答える