javascript - HTML5 + JavaScript - 将字符移向鼠标位置?

标签 javascript html rotation move

我的 Canvas 中间有一个 Angular 色,他会旋转以始终面向我的鼠标位置 - 无论鼠标在 Canvas 上的哪个位置。

我现在要做的是,当我按下 W 或向上箭头时,我的 Angular 色将走向鼠标。我不确定这背后的数学原理,所以我需要一些帮助。

现在,我有一个监听 WASD/箭头键的函数:

Player.prototype.playerAnimation = function (){

    //UP
    if(this.isUpKey){

        //Character movement [drawX/Y is the position of character]
        this.drawY = mouseY;
}

当然,这只会将 Angular 色 move 到鼠标的 Y 位置 - 根本不是我要找的位置。就是不知道需要什么样的公式?

谢谢

最佳答案

如果你已经成功地向鼠标方向旋转,你必须计算 Angular 色和光标之间的 Angular ,所以现在不是绝对 move (=mouseY) 你应该增加this.drawYthis.drawX 的某个值将有效地成为 Angular 色的速度。

但是,您希望 X 和 Y move 的对 Angular 线为该值,因此像这样的东西会将其分解为分量 X 和 Y:

this.drawX=this.drawX+this.speed*Math.cos(d2r(angle));
this.drawY=this.drawY+this.speed*Math.sin(d2r(angle));

如果您使用的是度数而不是弧度:

function d2r(d){
    var r=d*(Math.PI/180);
    return r;   
}

根据 Angular 确定方式,您可能需要使用公式中的符号。哦,如果您希望它在按住键时继续 move ,您需要添加一些 setTimeout 以在一段时间后重新触发 playerAnimation 函数

关于javascript - HTML5 + JavaScript - 将字符移向鼠标位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14467426/

相关文章:

html - 如何处理左侧填充的容器内的边距

java - 如何绕程序中心旋转椭圆?

c# - 如何在Windows Phone 8 中连续旋转?

ios - OpenGL ES 对象绕 Z 轴旋转

javascript - 管理 Cloud Code 中的 session 和 Parse.com 上的 current.user

javascript - 构建我的 Electron 应用程序时出错

javascript - Td 内部元素

javascript - 使用 ng-repeat 创建一个 8x8 表

javascript - 使用循环在 JavaScript 中将行与列相乘

PHP MySQL 结果返回双倍值