2017-06-15 6 views
0

こんにちは私はJavaを使用していますが、私はプログラムを停止しないが、例えば、私はそれを1に追加するメソッドに変数を追加するメソッドでは、 1秒待ってからもう一度1を追加しますが、delay()はプログラム全体を停止し、thread.sleepは処理プロジェクトでは機能しません。プロジェクトの処理を遅らせるには?

+0

処理はメインループで実行されています。開始時にタイムスタンプを取得するだけで済みます。その後、あなたが言ったように、毎秒1ずつ増やす必要があるカウンタの値が必要なときは、タイムスタンプをもう一度チェックし、何秒(=あなたのカウンタ)が経過したかを簡単に計算できます。 – domsson

+0

私はどのように私はjavaに新しいですし、私はちょうど月曜日に始めた。 –

+0

['Timestamp.getTime()'](https://docs.oracle.com/javase/7/docs/api/java/sql/Timestamp.html) - 処理の中で動作するかどうかはわかりませんが、私は推測しています結局、ProcessingはまさにJavaなのだろうか? – domsson

答えて

0

既に独自のスレッドを使用している場合を除き、delay()またはThread.sleep()をProcessingに使用しないでください。デフォルトの処理スレッドでは使用しないでください(処理機能のいずれでも使用しないでください)。

代わりに、frameCount変数またはmillis()関数を使用して、イベントの開始時刻を取得し、現在の時刻と比較してイベントをいつ停止するかを確認します。

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; 
} 

サイドノート:

は、ここでユーザーがクリックするたびに5秒間円を示している例です、あなたが入力したときに、適切な句読点を使用してみてください。今すぐあなたの質問はちょうど長い実行文です。これは読みにくいものです。

関連する問題