为什么我的是大鱼尾巴跟着鼠标移动呀?

来源:2-11 小鱼绘制

与花辞梦

2020-04-24 09:47

momObj.prototype.draw =function(){

//lerp x,y 让大鱼跟随鼠标移动

this.x = lerpDistance(mx,this.x,0.98);//数字越大越慢

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

//计算坐标差

//Math.atan2(y,x)

var deltaY = my - this.y;

var deltaX = mx - this.x;

var beta = Math.atan2(deltaY,deltaX);//-pi,pi


//lerp angle 趋向于角度

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


ctx1.save();

//使eye, body ,tail的中心在同一个点,后移尾巴位置得到大鱼图片

ctx1.translate(this.x,this.y);//重新映射画布上的 (0,0) 位置,先移动位置

ctx1.rotate(this.angle);//再旋转角度


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

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

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


ctx1.restore();


}


写回答 关注

1回答

  • 疯狂敲代码
    2020-06-04 15:59:40

    var beta = Math.atan2(deltaY,deltaX);//-pi,pi

    这一段改一下,后面加上 Math.PI

    var beta = Math.atan2(deltaY,deltaX) + Math.PI;

HTML5小游戏---爱心鱼(上)

学做HTML5游戏,轻轻松松带你上手,适合刚入手游戏开发的同学

92348 学习 · 551 问题

查看课程

相似问题