2012-11-08 41 views
0

所以我有這個功能。它應該做的是計算葡萄乾曲奇是否在盤子上(我已經正確地聲明瞭所有變量),並且有一個動態文本顯示卡路里數。當餅乾不在盤子裏時,卡路里計數應扣除餅乾的卡路里數(不應該因爲我有其他餅乾而重置)。 raisinOnce是一個布爾值,可以保證在將cookie添加到板上至少一次之前,卡路里不會被扣除。AS3計算對象是否在其他對象上並更改動態文本

function caloriesf(e:Event) 
{ 
    calories.text="only "+String(caloriesv)+" calories!"; 
    if (((raisin.x > plateminx && raisin.x < platemaxx)&& (raisin.y > plateminy && raisin.y < platemaxx))&& raisinInPlate==false) 
    { 
     raisinOnce=true; 
     caloriesv+=50; 
     raisinInPlate=true; 
     return; 
    } 
    else if (((raisin.x < plateminx && raisin.x > platemaxx)&&(raisin.y < plateminy && raisin.y > platemaxx)) && raisinOnce==true) 
    { 
     raisinInPlate=false; 
     caloriesv-=50; 
    } 
} 

現在這個工作正常時,cookie添加到板,但不是當它被刪除!這裏有什麼問題?

回答

0

我想通了。問題是,別人也沒必要聲明,也是我並不需要如下(作品)

function caloriesf(e:Event) 
{ 
    calories.text="only "+String(caloriesv)+" calories!"; 
    if ((raisin.x > plateminx && raisin.x < platemaxx)&& (raisin.y > plateminy && raisin.y < platemaxy)) 
    { 
     if (raisinInPlate==false) 
     { 
      caloriesv+=50; 
      raisinInPlate=true; 
     } 
    } 
    else 
    { 
     if (raisinInPlate==true) 
     { 
      raisinInPlate=false; 
      caloriesv-=50; 
     } 
    } 
} 
+0

除非你的板爲正方形,將工作使用一旦布爾...更正後的代碼 - 但對於地方和餅乾,你應該比較實際的圈子比如如果距離圓心的距離大於其半徑的總和,則小於碰撞時根本沒有碰撞。 –