如何找到一个对象必须旋转的角度来面对另一个,JS HTML5 CANVAS

时间:2013-03-08 00:19:18

标签: javascript html5 canvas rotation

好的,所以我有两个对象,一个玩家和一个游标。我有两个对象的位置,我只需要找到玩家必须旋转以面向光标的度数或弧度数。

我正在用Javascript制作这个游戏,游戏在画布中运行。所以我更喜欢在Update()或Draw()函数中放置一个代码来更新一个变量,每次调用Draw()函数时我都可以用它来旋转我的播放器。

我认为会有一些公式可供使用,但我自己无法找到它,坦率地说,如果有的话,我可能不知道该如何处理。如果你们中的一个能帮我解决这个问题会很棒!

1 个答案:

答案 0 :(得分:0)

好的,我们假设如下:
1)除了一个玩家(你知道它的位置)和一个光标(你知道它的位置),你也知道玩家的当前轮换(我认为你有一个自上而下的视图你可以看到他面对的方式)。我假设这是因为你问玩家必须旋转多远才能面对光标,这意味着玩家有旋转。如果玩家总是面向一个方向并且其他所有方向都围绕它们旋转,则相同的方法将起作用,您不需要在结尾处减去玩家的旋转。
2)球员旋转相对于“右”(正x轴) 3)球员的旋转以弧度为单位。

如果这是真的,那么你可以这样做:
1)计算旋转以从“右”到光标(如果你移动一切以使玩家在原点)。要做到这一点,你要做Math.atan2(cursor.y - player.y,cursor.x - player.x); - 这会给你弧度的角度 2)从这个角度减去玩家的旋转。

塔达?