【问题标题】:create a Sprite list from a tmx map (TiledMap) in LibGdx从 LibGdx 中的 tmx 地图 (TiledMap) 创建一个 Sprite 列表
【发布时间】:2016-06-23 04:42:47
【问题描述】:

在网上搜索了很多之后,我找不到答案..

情况如何? 我是(比利时)大学计算机科学专业的学生,​​我必须使用图形库 LibGdx 用 Ja​​va 进行塔防。

有什么问题? 在 LibGdx 中,有一个名为“TiledMap”的地图对象。它允许加载 tmx 地图(例如,用平铺制作..) 所以我用这段代码加载这张地图:

TiledMap tiledMap = new TmxMapLoader().load(name);

我用这段代码渲染它:

TiledMapRenderer tiledMapRenderer = new OrthogonalTiledMapRenderer(tiledMap);
OrthographicCamera camera = new OrthographicCamera(960, 900); // Size of map
camera.position.set(posX, posY, 0);
camera.update();
tiledMapRenderer.setView(camera);
tiledMapRenderer.render();

但我没有找到一种方法或东西可以让我在 Sprite 列表上分离 tmx 地图.. 就像

"private Sprite[][] tiles" .. 这个属性将允许通过塔的精灵改变位置 (0,0) 的图块(如果玩家想在这个位置建造塔)

还有用于制作 tmx 地图的属性,我将能够执行另一个属性,例如

"private boolean[][] isWay" .. 知道瓦片 (0,0) 是否是路(只有瓦片是路时怪物才能行走)..

所以我不知道如何将 TiledMap 更改为 Sprite[][]

如果我犯了一些英语错误,我很抱歉,但我每天都在努力提高我的英语水平......

感谢您的帮助;)

【问题讨论】:

    标签: java libgdx sprite tiled tmx


    【解决方案1】:

    TiledMap 没有任何 Sprite 实例。您可以通过 TiledMapTileLayer layer = (TiledMapTileLayer) map.getLayers().get(0) 获得对 TiledMapTileLayer 的引用,这将获得第一层。

    这样,您可以通过layer.getCell(x, y)layer.setCell(x, y, cell) 获取和设置单元格(以及它们包含的图块)。

    【讨论】:

    • 感谢您的回答!使用 layer.getCell(x,y) 就可以使用 Sprite 了?
    • 不,您将使用 TiledMapTile 的实例 - StaticTiledMapTile 是一个普通的瓦片,AnimatedTiledMapTile 采用静态瓦片列表并对其进行动画处理。
    • 好的,最后一个问题.. 单元格 (0;0) 始终位于左下角,或者可以更改它吗?
    • 不,但是您可以创建一个方法,将位置 0,0 反转为 maxwidth,maxheight 并随意使用。
    猜你喜欢
    • 2012-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-27
    • 1970-01-01
    相关资源
    最近更新 更多