我对LibGDX和平铺地图有些问题.
我来自Corona SDK(Lua)并且我使用了Lime(第三方lib来处理tmx地图),现在我切换到了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)!)
原文地址:https://www.jb51.cc/java/129897.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。