2015-03-28 4 views
0

Я использую редактор Tiled для создания простой плиточной карты. В моей карте у меня есть несколько прямоугольников, если я создаю прямоугольник шириной 50 и высотой 10 и поверну его ровно на 90 °, сохраните карту и загрузите ее в моем проекте LibGDX, форма будет обработана правильно, однако если я используйте случайный угол, скажем, 26 °, например, и снова отрисую карту, я не получаю желаемого результата, на самом деле я получаю точный напротив нужного угла.LibGDX Angle/Rotation Issue

Я читаю карту поплавок Плиточной непосредственно с карты с помощью:

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, а затем создадим мое тело со значениями по умолчанию.

ответ

1

Вам не хватает математики.

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

+0

Не совсем ответ, который я искал, но меня на правильном пути, чтобы найти это: '' 'Math.cos (Math.toRadians (objectRotation))' '' – snh