java – LibGDX:如何在等距平铺地图上做动画?
|
我对LibGDX和平铺地图有些问题.
我能够使用IsometricTiledMapRenderer作为渲染器和OrthographicCamera从资源加载等轴测图来显示地图(所有工作都按照维基页面中的描述). 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);
...
有人可以帮忙吗?我找到了 解决方法一直在寻找我自己.但现在就开始工作了. 最好的猜测是你的瓷砖组没有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)!) (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
