2012-01-29 34 views
0

我有一個百分比1.0F
這意味着100%的矩形
因此在某一點上我設置比例爲0.0f通過鼠標另一個函數單擊
和現在填充矩形恢復到100%或1.0F是哪裏出了問題
我看到矩形增長回升,但從來沒有在正確的時間(time_to_fill_in_seconds)
上更新我有以下
簡單..查找有關更新的計算錯誤,我認爲

private void updateInterface(GameTime gameTime) 
    { 
     this.newGameTime += gameTime.ElapsedGameTime.Milliseconds; 

     if ((rectangle.getPercentage() == 0) && 
      (rectangle.getAddValue() == 0)) 
     { 
      float time = 1000 * time_to_fill_in_seconds; 

      // update rectangle add values 
      rectangle.incrementToIn(1.0f, time); 
     } 

     rectangle.Update(gameTime); 
    } 

和內部矩形

// Value to be added on each Update 
    public void incrementToIn(float targetPercentage, float time) 
    { 
     setAddValue((targetPercentage - currentPercentage)/time); 
    } 


    public override void Update(GameTime gameTime) 
    { 
     if ((percentage <= 1.0f) && (addValue > 0)) 
     { 
      if (percentage == 1.0f) 
       addValue = 0; 
      percentage += addValue; 
     } 
    } 

我已經失去了像2天搜索的問題...
酒吧的時間太長,以填補
我到底做錯了什麼?

這可能是很簡單的東西...... ,如果你看到的東西錯了,我感謝你的幫助 謝謝

+1

可能不接觸的真正原因,但所有的浮點比較是錯的是你測試平等。在浮點運算中,我們不允許與具體值('1.0f')進行比較。看看這裏的備註部分:http://msdn.microsoft.com/en-us/library/ya2zha7s.aspx – 2012-01-29 19:10:55

回答

1

Pheraps我錯了,但似乎這一比例也不會永遠是0。事實上更新將addValue設置爲0但不是百分比。
而且我建議你用 百分比替代測試 百分比== 1 > = 1

+0

在鼠標點擊的另一個函數中,百分比設置爲0,我可以看到矩形增長。唯一的問題必須是時間或addValue。可能與gameTime沒有在計算中使用相關的東西。對不起我的英文。 – 2012-01-29 20:58:49