我正在使用Tiled地图编辑器来创建简单的平铺地图。在我的地图中,我有几个矩形,如果我创建一个宽度为50,高度为10的矩形并将其精确旋转90°,请保存该地图并将其加载到我的LibGDX项目中,即可正确呈现形状-但是如果我使用随机角度,例如说26°,然后再次渲染地图,则不会获得所需的结果,实际上我得到的是恰好相反的所需角度。

我正在使用以下方法直接从地图中读取Tiled地图浮动:

 Map map = new TmxMapLoader().load(mapLocation + mapName + mapExtension);
 for (MapLayer mapLayer : map.getLayers()) {
     for (MapObject mapObject : mapLayer.getObjects() {
          MapProperties objectProperties = mapObject.getProperties();

          float objectRotation = objectProperties.get("rotation") != null ? Float.parseFloat(objectProperties.get("rotation").toString)) : 0.0f;
          objectRotation = MathUtils.degRad * objectRotation;
     }
 }


MathUtils.degRad将直接从地图属性读取的度数转换为弧度,但沿线某处发生误读,或者我完全错过了一些东西。

稍后,我创建我的bodyDef并使用objectRotation将其角度设置为上述bodyDef.angle = objectRotation,然后使用默认值创建我的身体。

最佳答案

您缺少一些数学知识。

MathUtils.cosDeg( angleInDegrees )MathUtils.sinDeg ( angleInDegrees )

07-27 13:19