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

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

果實顏色判斷出錯

rt,應該是collision中判斷fruit.type[i]時出現的問題,有時大魚吃到橙色果實時score.double會置2,有時吃到藍色果實double會置1,因為魚身顏色是根據score.double判斷的,因此也會出現吃到橙色果實時變藍,吃到藍色果實變紅的情況。

collision代碼如下,求解,多謝各位了

function?collision(){
for(var?i?=?0;?i?<?fruit.num;?i++){
if(fruit.alive[i]){
//calculate?dist
var?dist?=?calLength2(mom.x,?mom.y,?fruit.x[i],?fruit.y[i]);
if(dist?<?200){
//eaten
fruit.dead(i);
fruit.born(i);
//score.fruitNum?=?score.double?==?2??2?*?score.fruitNum?:?score.fruitNum?+?1;
score.fruitNum++;
mom.bigBodyCnt?=?mom.bigBodyCnt?>=?7???7?:?mom.bigBodyCnt?+?1;
//score.double?=?fruit.type[i]?==?"blue"??2?:?1;
//?????????note:?sometimes?the?double?doesn't?work
console.log("fruit["?+?i?+?"]:?"?+fruit.type[i]);
if(fruit.type[i]?==?"blue"){
score.double?=?2;
}
}
}
}
}

function?fishCollision(){
var?dist?=?calLength2(mom.x,?mom.y,?child.x,?child.y);
if(dist?<?900){
//child?recover
child.childBodyCnt?=?0;
//score?reset???????
mom.bigBodyCnt?=?0;
score.addScore();
//score.reset();
}
}

==============================

剛剛對每個被吃掉的果實類型進行了打印,發現有些的顏色和type里的blue/orange對不上,懷疑也許是由于我的fruit再生不是用的老師的monitor機制,而是被吃掉或飄出屏幕就執行dead()然后born()。但是感覺這期間也對fruit.type進行了重新初始化,不該有錯啊。

fruitObj.prototype.draw?=?function(){
for(var?i?=?0;?i?<?this.num;?i++){
if(this.alive[i]){
var?pic?=?this.type[i]?==?"blue"??this.blue?:?this.orange;

if(this.size[i]?<=?15){
//grow
this.size[i]?+=?this.spd[i]?*?interval;
}else{
this.y[i]?-=?this.spd[i]?*?7?*?interval;
}
ctx2.drawImage(pic,?this.x[i]?-?this.size[i]?*?0.5,?this.y[i]?-?this.size[i]?*?0.5,?this.size[i],?this.size[i]);

if(this.y[i]?<?-10){
this.dead(i);
this.born(i);
}
}
}
}
fruitObj.prototype.born?=?function(i){
var?weedId?=?Math.floor(Math.random()?*?weed.num);
this.x[i]?=?weed.x[weedId]?;
this.y[i]?=?canHeight?-?weed.len[weedId];
this.size[i]?=?0;
var?ran?=?Math.random();
this.type[i]?=?ran?<?0.2???"blue"?:?"orange";
this.alive[i]?=?true;
}

fruitObj.prototype.dead?=?function(i){
this.alive[i]?=?false;
this.type[i]?=?""
}


正在回答

1 回答

已解決,因為在collision中先重新born了新的fruit再判斷的顏色,順序錯了,導致有可能新生成的fruit顏色與之前的不同,令score.double錯誤

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

舉報

0/150
提交
取消

果實顏色判斷出錯

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

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

幫助反饋 APP下載

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

公眾號

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