【发布时间】:2018-02-07 06:47:42
【问题描述】:
我正在用 Java 制作游戏引擎。我正在尝试将盒子碰撞添加到我的游戏中,并且这个盒子需要能够与玩家一起旋转。我已经搜索并找到了一个公式,该公式应该计算旋转点的新点,但是,当我旋转我的点时,它们似乎遵循一个奇怪的不成比例的图 8 路径,而不是围绕我的盒子中心的圆圈。
for (Point p : points) {
//Loops through every point on the box (Square)
//top, left, bottom, right
float pointX = p.getX();
float pointY = p.getY();
//rotation as radians
float cos = (float) Math.cos(rotation);
float sin = (float) Math.sin(rotation);
pointX = centerX +(pointX-centerX) * cos + (pointY-centerY) * sin;
pointY = centerY -(pointY-centerY) * cos + (pointX-centerX) * sin;
p.setPos(pointX, pointY);
}
当我旋转播放器时,盒子会发生以下情况: https://gyazo.com/ff801ce8458269c2385e24b2dc5404f5
任何帮助将不胜感激,我已经解决这个问题将近一周了,结果相同。
【问题讨论】:
标签: java math rotation game-engine collision