0
嗨Im使用java但我試圖做一個延遲,不會停止程序,但停止該代碼塊的種類,例如,如果我有一個方法,將1添加到變量我想它添加1然後等待一秒鐘,然後再加1,但延遲()停止整個程序和thread.sleep不適用於處理項目。如何延遲處理項目?
嗨Im使用java但我試圖做一個延遲,不會停止程序,但停止該代碼塊的種類,例如,如果我有一個方法,將1添加到變量我想它添加1然後等待一秒鐘,然後再加1,但延遲()停止整個程序和thread.sleep不適用於處理項目。如何延遲處理項目?
您不應該在處理中使用delay()
或Thread.sleep()
,除非您已經使用自己的線程。不要在默認的Processing線程中使用它(所以不要在任何Processing函數中使用它)。
取而代之,請使用frameCount
變量或millis()
函數來獲取事件啓動的時間,然後根據當前時間檢查該時間以確定何時停止事件。
下面是顯示當用戶點擊5秒一圈的例子:
int clickTime = 0;
boolean showCircle = false;
void draw(){
background(64);
if(showCircle){
ellipse(width/2, height/2, width, height);
if(clickTime + 5*1000 < millis()){
showCircle = false;
}
}
}
void mousePressed(){
clickTime = millis();
showCircle = true;
}
邊注:請儘量當你鍵入要使用適當的標點符號。現在你的問題只是一個長時間運行的句子,這使得它很難閱讀。
處理正在運行一個主循環,對吧?你可以簡單地在開始時獲得時間戳。然後,只要你需要那個計數器的值(就像你說的那樣,應該每秒增加1),你再次檢查時間戳,並且可以很容易地計算已經過去了多少秒(=你的計數器)。 – domsson
我該怎麼做,我是新來的Java和我剛剛開始星期一。 –
With ['Timestamp.getTime()'](https://docs.oracle.com/javase/7/docs/api/java/sql/Timestamp.html) - 不確定這是否適用於Processing,但我猜那麼Processing就只是Java而已? – domsson