JavaScript 和 HTML5 - 朝鼠标方向旋转角色

标签 javascript html rotation mouse

我的 Canvas 中间有一个图像,我希望能够将其旋转以面向鼠标在 Canvas 上的位置。

我有鼠标位置的变量,并且我已将图像放置在矩阵中,因此它当前以给定值在中心完美旋转,现在我只需要连接两者。

var characterRotation = 0;

function characterController(){

    ctxMain.clearRect(0, 0, gameWidth, gameHeight);

    var charWidth = 65;
    var charHeight = 85;

    var srcX = 0;
    var srcY = 619;
    var drawX = gameWidth/2 - charWidth/2;
    var drawY = gameHeight/2 - charHeight/2;


    ctxMain.setTransform(1, 0, 0, 1, drawX, drawY);
    ctxMain.rotate(characterRotation * Math.PI/180);

    characterRotation = mouseX*2 / mouseY*2; // ?? this is what needs to roate my character

    ctxMain.drawImage(imgSprite, srcX, srcY, charWidth, charHeight, -charWidth/2, -charHeight/2, charWidth, charHeight);


}

最佳答案

根据三 Angular 函数,您要寻找的 Angular 为

sin( rotation ) = y / (x^2 + y^2)  # opposite/adjacent

但首先你需要确保你的坐标居中,所以从 mouseX 和 mouseY 中减去游戏宽度的一半,然后使用上面的得到

rotation = Math.asin( y / (x*x + y*y)

关于JavaScript 和 HTML5 - 朝鼠标方向旋转角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14448995/

相关文章:

javascript - 如何在 jQuery/Javascript 中逐点获取元素

javascript - 如何通过代码改变控件的颜色?

html - 如何在流体布局中将子 div 的内容在父 div 中垂直居中

ios - 旋转 UIImageView 数据 -

opengl - 如何使用四元数 (Three.js) 根据模型相对于相机的当前方向调整所需的旋转?

javascript - 检查物体是否正在注视位置

javascript - JavaScript 中需要 return 语句做什么?

javascript - 防止在返回历史记录时触发滚动动画

html - 对于包含 HTML 片段的文件,我应该使用什么扩展名?

javascript - 如何添加类取决于数据目标(Bootstrap)