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.babyInterval = 1000;
this.babyBodyTimer = 0;
this.babyBodyCount = 0;
}
babyObj.prototype.init =function(){
this.x = canWidth*0.5 -50;
this.y = canHeight*0.5 +50;
this.angle = 0;
// this.babyEye.src = "./src/babyEye0.png";
// this.babyBody.src = "./src/babyFade0.png";
// this.babyTail.src = "./src/babyTail0.png";
}
babyObj.prototype.draw = function(){
// mom
this.x = lerpDistance(mom.x,this.x,0.98);
this.y = lerpDistance(mom.y,this.y,0.98);
var deltaY = mom.y - this.y;
var deltaX = mom.x - this.x;
var beta = Math.atan2(deltaY,deltaX)+Math.PI;
this.angle = lerpAngle(beta,this.angle,0.5);
//尾巴摆动
this.babyTailTimer += deltaTime;
if (this.babyTailTimer>50) {
this.babyTailCount = (this.babyTailCount + 1)%8;
this.babyTailTimer %=50;
};
//眨眼睛
this.babyEyeTimer += deltaTime;
if (this.babyEyeTimer > this.babyEyeIntervel) {
this.babyEyeCount =(this.babyEyeCount + 1)%2;
this.babyEyeTimer %= this.babyEyeIntervel;
if (this.babyEyeCount == 0) {
this.babyEyeIntervel = Math.random()*1500 + 2000;
}else{
this.babyEyeIntervel =200;
}
};
//身体变白
this.babyBodyTimer += deltaTime;
if (this.BabyBodyTimer > 300) {
this.babyBodyCount = this.babyBodyCount +1;
this.babyBodyTimer %=300;
if(this.babyBodyCount >19){
this.babyBodyCount = 19;
}
};
ctx1.save();
ctx1.translate(this.x,this.y);
ctx1.rotate(this.angle);
var babyTailCount = this.babyTailCount;
ctx1.drawImage(babyTail[babyTailCount],-babyTail[babyTailCount].width*0.5+23,-babyTail[babyTailCount].height*0.5);
var babyBodyCount = this.babyBodyCount;
ctx1.drawImage(babyBody[babyBodyCount],-babyBody[babyBodyCount].width*0.5,-babyBody[babyBodyCount].height*0.5);
var babyEyeCount = this.babyEyeCount;
ctx1.drawImage(babyEye[babyEyeCount],-babyEye[babyEyeCount].width*0.5,-babyEye[babyEyeCount].height*0.5);
ctx1.restore();
}
第一步,在main.js中加载资源,以眼睛为例子
var babyEye=[];
init(){
for(var i=0;i<2;i++){
babyEye[i]= new Image();
babyEye[i].src = "images/babyEye"+i+".png";
}
}
第二步,删除baby.js中的眼睛定义
this.babyEye = new Image();
this.babyEye.src = "./src/babyEye0.png";
看你的代码,应该是因为没有去除babyObj()中的资源定义:
this.babyEye = new Image();
this.babyBody = new Image();
this.babyTail = new Image();