我正在开发一个简单的游戏,其中我遇到了一个小而重要的问题。 我在逻辑中实现了绝对旋转。
当我在物体没有任何旋转时开始旋转物体时,它可以正常工作,我可以像任何方向一样旋转,没有任何问题,如下面的链接所示。
现在当对象确实有一些旋转时出现问题,为什么我尝试在一个方向上旋转,而不是在所需的方向上旋转,旋转总是从初始旋转开始,如下面的链接所示。
Rotation issue when shape has some rotation
我认为视频会显示所有内容,如果您有任何疑问,请与我联系。
我认为问题是,鼠标指针的方向应该从选择的任何圆圈开始相对旋转。
现在关于我的逻辑,
在鼠标按下事件中我刚检查了
是否在画布上选择了形状,如果是的话 如果是的话,如果四个圆圈中的一个包含鼠标点 然后启动报价
使用矢量数学 我根据鼠标点更新动作,
根据以下方法计算旋转角度
Math.atan2(rotationVector.getY(), rotationVector.getX());
并对此形状应用旋转。
旋转矢量我来自这个班级
我在鼠标按下时调用了类startMotion,在鼠标拖动事件中调用了updateMotion。
我缺少什么或做错什么?
答案 0 :(得分:0)
我们需要看一些能够帮助你的代码。无论何时启动旋转,看起来都会重置旋转,然后在拖动时根据鼠标位置快速旋转对象。