java – LibGDX:如何在等距平铺地图上做动画?

我对LibGDX和平铺地图有些问题.
我来自Corona SDK(Lua)并且我使用了Lime(第三方lib来处理tmx地图),现在我切换到了LibGDX并遵循了这个最近的功能GraphicsTileMaps

我能够使用IsometricTiledMapRenderer作为渲染器和OrthographicCamera从资源加载等轴测图来显示地图(所有工作都按照维基页面中的描述).
我还能够以编程方式填充地图图层上的一些图块,但是当我尝试使用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,grass);  // <--- This works.
    layer.setCell(0,1,player); // <--- When I try this,it causes 
                                //      a NullPointerException.

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

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

解决方法

一直在寻找我自己.
但现在就开始工作了.

最好的猜测是你的瓷砖组没有7或8个瓷砖.

我得到以下代码

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个tile. (我的麻烦是getTile(0)不是第一个瓷砖.. getTile(1)!)

相关文章

应用场景 C端用户提交工单、工单创建完成之后、会发布一条工...
线程类,设置有一个公共资源 package cn.org.chris.concurre...
Java中的数字(带有0前缀和字符串)
在Java 9中使用JLink的目的是什么?
Java Stream API Filter(过滤器)
在Java中找到正数和负数数组元素的数量