gpt4 book ai didi

java - LibGDX:如何在等距平铺 map 上制作动画?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:32:40 25 4
gpt4 key购买 nike

我在使用 LibGDX 和平铺 map 时遇到了一些问题。我来自 Corona SDK (Lua),我使用过 Lime(第三方库来处理 tmx map ),现在我切换到 LibGDX 并遵循了这个最近的功能:GraphicsTileMaps

我能够使用 IsometricTiledMapRenderer 作为渲染器并使用 OrthographicCamera 来显示 map (所有工作都按照 wiki 页面中的描述)从 Assets 加载等距 map 。我还能够以编程方式在 map 层上填充一些图 block ,但是当我尝试使用 AnimatedTiledMapTile 时,我的问题就开始了:

    map = new TmxMapLoader().load(...);

TiledMapTileLayer layer = (TiledMapTileLayer) map.getLayers().getLayer("layer1");
TiledMapTileSet tileset = map.getTileSets().getTileSet("tileset1");
TiledMapTile grassTile = tileset.getTile(4);
TiledMapTile rockTile = tileset.getTile(6);

Array<StaticTiledMapTile> playerTileArr = new Array<StaticTiledMapTile>();
playerTileArr.add((StaticTiledMapTile)tileset.getTile(7));
playerTileArr.add((StaticTiledMapTile)tileset.getTile(8));

Cell grass = new Cell();
grass.setTile(grassTile);

Cell player = new Cell();
player.setTile(new AnimatedTiledMapTile(0.1f, playerTileArr));

layer.setCell(0,0, grass); // <--- This works.
layer.setCell(0,1, player); // <--- When I try this, it causes
// a NullPointerException.

renderer = IsometricTiledMapRenderer(map, 1 / 30f);
...

有人可以帮忙吗?我找到了 TideMapLoaderAnimatedTiledMapTile 用法示例但我知道我使用的是“平铺 map ”(不是“潮汐 map ”)。但是..有人可以解释我如何在特定的图 block 上制作动画吗?

最佳答案

通过这几次搜索我自己。但现在开始工作了。

最好的猜测是您的图 block 集没有 7 或 8 个图 block 。

我得到了以下代码:

    TiledMapTileLayer layer = (TiledMapTileLayer) map.getLayers().get(0);
TiledMapTileSet tileset = map.getTileSets().getTileSet(0);

Array<StaticTiledMapTile> at = new Array<StaticTiledMapTile>();
if (tileset.getTile(0) != null) at.add((StaticTiledMapTile) tileset.getTile(0));
if (tileset.getTile(1) != null) at.add((StaticTiledMapTile) tileset.getTile(1));
if (tileset.getTile(2) != null) at.add((StaticTiledMapTile) tileset.getTile(2));
if (tileset.getTile(3) != null) at.add((StaticTiledMapTile) tileset.getTile(3));

layer.getCell(2, 2).setTile(new AnimatedTiledMapTile(0.3f, at));

只有 getTile(1) 和 getTile(2) 是 != null - 我只有 2 个图 block 。 (我的问题是 getTile(0) 不是第一个图 block .. getTile(1) 是!)

关于java - LibGDX:如何在等距平铺 map 上制作动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15323084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com