var babyObj=function(){
this.x;
this.y;
this.angle;
this.babyEye=new Image();
this.babyBody=new Image();
this.babyTail=new Image();
this.babyTailTimer=0;
this.babyTailCount=0;
this.babyEyeTimer=0;
this.babyEyeCount=0;
this.babyEyeInterval=1000;
}
babyObj.prototype.init=function(){
this.x=canWidth*0.5-50;
this.y=canHeight*0.5+50;
this.angle=0;
this.babyBody.src="./src/babyFade0.png";
}
babyObj.prototype.draw=function(){
this.x=lerpDistance(mom.x, this.x, 0.9);
this.y=lerpDistance(mom.y, this.y, 0.9);
var deltaY=mom.y-this.y;
var deltaX=mom.y-this.x;
var beta=Math.atan2(deltaY,deltaX)+Math.PI;
this.angle=lerpAngle(beta, this.angle, 0.6);
this.babyTailTimer+=deltaTime;
if(this.babyTailTimer>50){
this.babyTailCount=(this.babyTailCount+1)%8;
this.babyTailTimer%=50;
}
this.babyEyeTimer+=deltaTime;
if(this.babyEyeTimer>this.babyEyeInterval){
this.babyEyeCount=(this.babyEyeCount+1)%2;
this.babyEyeTimer%=this.babyEyeInterval;
if(this.babyEyeCount==1){
this.babyEyeInterval=Math.random()*1500+2000;
}else{
this.babyEyeInterval=200;
}
}
ctx1.save();
ctx1.translate(this.x,this.y);
ctx1.rotate(this.angle);
var babyTailCount=this.babyTailCount;
var babyEyeCount=this.babyEyeCount;
ctx1.drawImage(babyTail[babyTailCount],-babyTail[babyTailCount].width*0.5+25,-babyTail[babyTailCount].height*0.5);
ctx1.drawImage(this.babyBody,-this.babyBody.width*0.5,-this.babyBody.height*0.5);
ctx1.drawImage(babyEye[babyEyeCount],-babyEye[babyEyeCount].width*0.5,-babyEye[babyEyeCount].height*0.5);
ctx1.restore();
}
我是因为mom.x没有赋初值
把width后面的括号去掉就可以了