LibGDX:如何在等轴平铺地图上做动画?

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

我能够使用IsometricTiledMapRenderer作为渲染器和OrthographicCamera从资源中加载等轴测图,以显示地图(所有工作均按照wiki页面中的描述)。 我还能够在地图图层上以编程方式填充某个图块,但是当我尝试使用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使用示例,但我知道我使用的是“ 平铺地图”(而不是“ 潮汐地图”)。 然而..有人可以解释我如何在特定的瓷砖上制作动画?


经过这几次寻找我的自我。 但现在就开始工作了。

最好的猜测是你的瓷砖没有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)不是第一个tile .. getTile(1)是!)

链接地址: http://www.djcxy.com/p/12293.html

上一篇: LibGDX: How to do animations on an isometric tiled map?

下一篇: Android loading of large bitmaps