2016-02-25 77 views
0

我正在嘗試創建一個名稱爲progress的變量,該變量在遊戲過程中會更新(它可以上下移動)。它通過使用if條件每1/10秒更新一次。正在更新遊戲進度變量

int progress = 0; 
int total; 

if (timedecimalpairs % 0.1m == 0) {  //Always true 

    if (demandproductionrate >= 100) 
     progress += 10; 
    else    
     progress -= 50; 

    total = progress;  
    GUI.Box (new Rect (Screen.width - 220, 277, 50, 25), total.ToString()); 
} 

timedecimalpairs假定0.1/0.2/0.3的順序的值,所以如果條件是總是如此。問題是我的progress變量總是假定值10或-50,當第二個條件滿足時它不會總和10 + 10 + 10等等。 demandproductionrate在遊戲中與玩家輸入相關聯。

你能幫我嗎?

+0

您可能需要使'progress'成爲這個類中的任何類的字段,而不是當前方法中的變量。 –

+0

您將進度設置爲0,然後添加10或-50。還有什麼可以取得進展? – TTT

+0

有你。我的想法是它只會初始化一次。 – ClaudioA

回答

0

任何時候,如果在方法內部有變量初始化,每次調用方法時都會初始化它們。我想在你的例子中,每次方法觸發時你都在初始化int progress = 0;。爲了糾正這種情況,請從方法中刪除初始化,並在應用程序的開始處將其初始化。