为了账号安全,请及时绑定邮箱和手机立即绑定

鱼移到左上角,不会跟着鼠标动,求解答,代码如下:

momObj.prototype.init = function()

{

this.x = canWidth * 0.5;

this.y = canHeight * 0.5;

this.angle = 0;

this.bigEye.src = "./src/bigEye0.png" ;

this.bigBody.src = "./src/bigSwim0.png" ;

this.bigTail.src =  "./src/bigTail0.png" ;

}

momObj.prototype.draw = function()

{

//lerp x,y

this.x = lerpDistance(mx, this.x, 0.98);    //让大鱼的坐标一直趋向于鼠标的坐标

this.y = lerpDistance(my, this.y, 0.98);

//delta angle(角度差)

//Math.atan2(x,y)

var deltaY = my - this.y;

var deltaX = mx - this.x;

var beta = Math.atan2(deltaY ,deltaX);//返回值是[-PI,PI]


this.angle = lerpAngle(beta, this.angle, 0.6); 


ctx1.save();

ctx1.translate(this.x,this.y);  //大鱼的相对原点

ctx1.rotate(this.angle);    //旋转画布

ctx1.drawImage(this.bigEye, -this.bigEye.width * 0.5, -this.bigEye.height * 0.5);

ctx1.drawImage(this.bigBody, -this.bigBody.width * 0.5, -this.bigBody.height * 0.5);

ctx1.drawImage(this.bigTail, -this.bigTail.width * 0.5 + 30, -this.bigTail.height * 0.5);

ctx1.restore();

}


正在回答

2 回答

什么问题?

0 回复 有任何疑惑可以回复我~

main.js

//初始化部分

mom = new momObj();

mom.init();

mx = canWidth * 0.5;

my = canHeight * 0.5;

//循环部分

ctx1.clearRect(0,0,canWidth,canHeight); //ctx1每一帧的都要清除掉,不然会被覆盖,使画的图形变粗

mom.draw();

function onMouseMove(e)   

{

if (e.offSetX || e.layerX)   

{

mx = e.offSetX == undefined ? e.offSetX : e.layerX;

my = e.offSetY == undefined ? e.offSetY : e.layerY;

//console.log(mx);

}

}


0 回复 有任何疑惑可以回复我~
#1

ifornot 提问者

知道错哪儿了。。。太蠢了
2016-09-22 回复 有任何疑惑可以回复我~
#2

星空下的小孩 回复 ifornot 提问者

我也出现类似问题,是怎么回事啊?
2016-11-15 回复 有任何疑惑可以回复我~
#3

星空下的小孩 回复 ifornot 提问者

我懂了
2016-11-15 回复 有任何疑惑可以回复我~
#4

慕无忌8983795 回复 ifornot 提问者

我还没看出那里错了
2017-03-07 回复 有任何疑惑可以回复我~
#5

慕粉4249962 回复 ifornot 提问者

我也是这个问题给我说一下吧
2017-07-25 回复 有任何疑惑可以回复我~
#6

慕粉4249962 回复 ifornot 提问者

我也是这样子的问题 是怎么回事呀
2017-07-25 回复 有任何疑惑可以回复我~
#7

慕粉4249962 回复 星空下的小孩

怎么回事我也是
2017-07-25 回复 有任何疑惑可以回复我~
查看4条回复

举报

0/150
提交
取消

鱼移到左上角,不会跟着鼠标动,求解答,代码如下:

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信