var babyObj = function() { this.x; this.y; this.angle; this.babyTailTimer = 0; this.babyTailCount = 0; this.babyEyeTimer = 0; this.babyEyeCount = 0; this.babyEyeInterval = 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; } babyObj.prototype.draw = function() { 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.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 == 0) { this.babyEyeInterval = Math.random() * 1500 + 2000; } else { this.babyEyeInterval = 200; } } this.babyBodyTimer += deltaTime; if(this.babyBodyTimer > 300) { this.babyBodyCount = this.babyBodyCount + 1; this.babyBodyTimer = 0;//就是加上这一行就报错了Uncaught TypeError: Cannot read property 'width' of undefined(…) if(this.babyBodyTimer > 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(); }
if(this.babyBodyTimer > 19) {
this.babyBodyCount = 19;
}
检查一下