我正在开发JMonkeyEngine 3.0

我在Scene.j3o中有地图

我想添加详细程度,但是我不知道如何获取地形的几何形状。
我发现很少的代码,但是所有代码都基于Heightmap地形,并使用TerrainQuad。

另外,我想使用简单的草皮系统,该系统可以创建2个四边形,旋转它们,设置材质并克隆它们并添加到地图,但是我不知道如何获取地形的高度,这是教程中的内容:

  float y = myTerrainQuad.getHeight(new Vector2f(x, z));

最佳答案

我遵循了JME 3.0官方初学者指南书中的地形教程,因此遇到了与您同样的问题。它最初是通过Scene.j3o上的IDE上下文菜单帮助您创建地形的,但是,当他们开始查看地形的高度以放置树时,就像您所说的那样,他们切换到使用TerrainQuad对象来描述它。

我很高兴地说,我现在设法通过从.j3o中提取TerrainQuad来解决该问题,如下所示:

Spatial terrainGeo = assetManager.loadModel("Scenes/bumpyScene.j3o");
TerrainQuad terrainQuad = ((TerrainQuad)((Node)terrainGeo).getChild("terrain-bumpyScene"));

Geometry someObject = new Geometry("SomeObject", new Box(.1f, .1f, .1f));

terrainQuad.getHeight(
    new Vector2f(someObject.getLocalTranslation().x, someObject.getLocalTranslation().y) );


在SceneExplorer中,您可以看到场景的结构和名称。如您所见,编辑器向导会创建一个TerrainQuad,在示例中,我的TerrainQuad位于名为“ terrain-bumpyScene”的节点下。



最后一点,使用遍历代码的节点来调试某些问题可能会有所帮助,此链接对我完成任务很有帮助:JME advanced docs, node traversal

关于java - JAVA-JMonkeyEngine-获取场景信息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20543815/

10-10 07:07