【问题标题】:Tiles not updating completely in rendering in libgdx在 libgdx 中渲染时瓷砖没有完全更新
【发布时间】:2016-02-06 05:26:58
【问题描述】:

这是我试图让代码正常工作的代码。当我的角色与特定对象发生碰撞时,它应该运行。瓷砖获得了新的属性,但在渲染过程中不会改变。我的目标是给他们新的属性并渲染新的瓷砖。

collisionLayer = (TiledMapTileLayer) map.getLayers().get(0);
                for(int x = 0; x < collisionLayer.getWidth();x++){
                    for(int y = 0; y < collisionLayer.getHeight();y++){
                        cell = collisionLayer.getCell(x,y);
  if(cell.getTile().getProperties().containsKey("hiddenwall")) {    
                        cell.setTile(map.getTileSets().getTile(2));
                    }
                    }
               }

这是有效的旧代码。在发生碰撞时,它将从玩家位置获取图块,并且在与碰撞图块发生碰撞时,它将使图块变为新的块类型并设置它。下面的代码可以正常工作并正确显示。上面的代码没有。有人知道为什么吗?

Cell cell = collisionLayer.getCell(
                    (int) ((getX()) / (collisionLayer.getTileWidth() )),
                    (int) ((getY())/ (collisionLayer.getTileHeight() )));
             cell.setTile(map.getTileSets().getTile(2));

【问题讨论】:

  • 你说它是“应该”运行的。那么该语句中的代码是否曾经运行过?
  • 是的,代码确实可以运行。第1组代码是我现在运行的代码。

标签: java eclipse libgdx rendering game-physics


【解决方案1】:

原来我在错误的地方运行我的方法。我需要在我的程序的渲染方法中运行它。虽然它在其他地方确实有效。 (这是在我的碰撞检测中)一个瓷砖一个瓷砖。检查地图上的每个图块并不能与所有其他机制一起使用。一旦我在渲染方法中运行代码,它每次都像魅力一样工作。

【讨论】:

    猜你喜欢
    • 2015-01-06
    • 2015-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多