請原諒我的無知,但是我碰到了一個問題,這個問題對我目前掌握處理編程知識具有挑戰性,儘管這個想法很簡單。你看,我需要每10秒向變量添加一個單位。這是代碼:如何在處理中每10秒向變量添加+1?
int i = 0;
void setup()
{
frameRate(60);
}
void draw()
{
int time = (millis() % 10000)/1000;
if (time == 9)
{
i++;
} else {}
System.out.println("-------------------------------\n" +
"Timer: " + time + "\n"
+ "Adding 1 every 10 seconds: : " + i + "\n"
+ "-------------------------------");
}
的問題是,由於draw()
儘快循環每秒60次,爲time
達到9第二它最後使if
聲明要執行60次,它最終將60到i
每10秒,我只是需要被加1
我嘗試應用某種算法,因爲它們增加等,從而減去了不必要的數字:
int i = 1;
int toSubstract = 0; //Variable for algorithm
void setup()
{
frameRate(60);
}
void draw()
{
int time = (millis() % 10000)/1000;
if (time == 9)
{
i++;
algToSubstract();
} else {}
System.out.println("-------------------------------\n" +
"Timer: " + time + "\n"
+ "Adding 1 every 10 seconds: : " + i + "\n"
+ "-------------------------------");
}
void algToSubstract() //<--- This is the algorithm
{
i = i - toSubstract;
toSubstract++;
if (toSubstract > 59)
{
toSubstract = 0;
} else {}
}
...但我無法讓它工作。這個想法是這樣的:
time
達到9,if
語句執行,i
= 1和toSubstract
= 0
i
增加1,從而i
= 2
i = i - toSusbract
(i
= 2 - 0所以i
= 2)。
toSusbract
增加1,從而toSusbract
= 1
i
增加1,從而i
= 3
i = i - toSusbract
(i
= 3 - 1,從而i
= 2)。
toSusbract
增加1,從而toSusbract
= 2
...過程繼續...
toSubstract
變得大於59,因此重新開始爲0
time
停止被9.
該語言正在處理。請注意[tag:處理]標記。 –