【问题标题】:How to make find the angle one object must rotate at to face another, JS HTML5 CANVAS如何找到一个对象必须旋转以面对另一个对象的角度,JS HTML5 CANVAS
【发布时间】:2013-02-23 10:27:31
【问题描述】:
好的,所以我有两个对象,一个玩家和一个光标。我有两个对象的位置,我只需要找到玩家必须旋转以面对光标的度数或弧度数。
我正在用 Javascript 制作这个游戏,并且游戏在画布中运行。所以我更喜欢在 Update() 或 Draw() 函数中放置一个代码来更新一个变量,我可以在每次调用 Draw() 函数时使用该变量来旋转我的播放器。
我想会有一些公式可以用于此,但我自己无法找到它,坦率地说,如果我有的话,我可能不知道该怎么做。所以,如果你们中的一个人能帮我解决这个问题,那就太棒了!
【问题讨论】:
标签:
javascript
html
canvas
rotation
【解决方案1】:
好的,让我们假设以下内容:
1)除了一个玩家(你知道他的位置)和一个光标(你知道他的位置)之外,你还知道玩家的当前轮换(我想你有一个人的自上而下的视图和你可以看到他面对的方向)。我假设这是因为您询问玩家必须旋转多远才能面对光标,这意味着玩家有旋转。如果玩家总是面向一个方向,而其他一切都围绕着他们旋转,同样的方法也可以,只是你不需要在最后减去玩家的旋转。
2) 球员轮换相对于“右”(正 x 轴)。
3) 球员轮换以弧度为单位。
如果这是真的,那么您将执行以下操作:
1)计算出从“右”到光标的旋转(如果你移动所有东西以使玩家位于原点)。为此,您需要执行 Math.atan2(cursor.y - player.y,cursor.x - player.x); - 这会给你以弧度为单位的角度。
2) 从这个角度减去玩家的旋转。
哒哒?