亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

大魚在屏幕上亂轉

http://img1.sycdn.imooc.com//57ec741f00018df305790061.jpg

是什么原因?代碼如下


var babyObj = function()
{
?? ?this.x;
?? ?this.y;
?? ?this.angle;
?? ?this.babyBody = 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()
{
?? ?//lerp x,y
?? ?this.x = lerpDistance(mom.x,this.x,0.98);
?? ?this.y = lerpDistance(mom.y,this.y,0.98);

?? ?//lerp angle
?? ?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);

?? ?//baby的幀數計數
?? ?this.babyTailTimer += deltaTime;
?? ?if(this.babyTailTimer > 50)
?? ?{
?? ??? ?this.babyTailCount = (this.babyTailCount + 1) % 8;
?? ??? ?this.babyTailTimer %= 50;
?? ?}

?? ?//baby eye
?? ?this.babyEyeTimer += deltaTime;
?? ?if(this.babyEyeTimer > this.babyEyeInterval)//如果計時器超過了時間間隔
?? ?{
?? ??? ?this.babyEyeCount = (this.babyEyeCount + 1) % 2;//自身加1 但不能超過2 所以對2取模 這樣會在0到1之間循環
?? ??? ?this.babyEyeTimer %= this.babyEyeInterval;//計時器對當前的時間間隔取模 這樣可以清空計時器

?? ??? ?if(this.babyEyeCount == 0)//判斷小魚眼睛在哪一楨是睜眼還是閉眼那一幀
?? ??? ?{//小魚在閉眼的一幀情況下保留的時間
?? ??? ??? ?this.babyEyeInterval = Math.random() * 1500 +2000;//重新獲取一個隨機事件(2000到3500之間的隨機值)
?? ??? ?}
?? ??? ?else
?? ??? ?{//小魚睜眼的時間為200毫秒
?? ??? ??? ?this.babyEyeInterval = 200;
?? ??? ?}
?? ?}

?? ?//ctx1
?? ?ctx1.save();
?? ?//translateaby
?? ?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);//使用這一楨的數組中的尾巴圖取代babyTailEye變的圖

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

?? ?var babyEyeCount = this.babyEyeCount;//定義一個臨時變量 存儲這一楨要用的
?? ?ctx1.drawImage(babyEye[babyEyeCount],-babyEye[babyEyeCount].width * 0.5,-babyEye[babyEyeCount].height * 0.5);

?? ?ctx1.restore();
}

正在回答

2 回答

你的圖片資源可能不是最新的,下載最新的圖片資源試試

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

你在main.js的主循環估計你寫錯了


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

舉報

0/150
提交
取消

大魚在屏幕上亂轉

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號