2013-07-14 12 views
6

処理言語を使用して、時間の経過とともにサイズが大きくなる矩形をスケッチします。次のコードは出力を与えません。処理環境でのdelay()の使用

void setup() 
{ 
    size(900,900); 
} 
void draw() 
{ 
    int edge=100; 
    for(int i=0;i<300;i++) 
    { 
     delay(100); 
     edge++;  
     rect(100,100,edge,edge); 
    } 
} 

delay()関数が間違って使用されていると思われます。

答えて

7

millis()機能を使用して独自の遅延システムをローリングすることをおすすめします。

this exampleをご覧ください。

10

このような "ロール独自の"遅延方法は、ほとんどの目的に適しています。 delayメソッドに渡された値を変更してタイミングを変更するだけです。これはちょうど例えば2秒ごとに "開始"と "終了"を出力します。

処理により
void draw() 
{ 
    System.out.println("start"); 
    delay(2000); 
    System.out.println("end"); 
    delay(2000); 
} 

void delay(int delay) 
{ 
    int time = millis(); 
    while(millis() - time <= delay); 
} 
+0

この例では、printlnのために働く()ではなく、描画のために図形 - プログラム全体が遅れて描画されますが、どこに遅延が配置されているかに関係なく描画されます。 – Kokodoko

2

プログラムの流れは、ドローの終わりに(到達するまで、画面がリフレッシュされません)
次のことを試してみてください。

void setup() 
{ 
    size(900,900); 
    frameRate(10); 
} 
int edge = 100; 
void draw() 
{ 
    edge++;  
    rect(100,100,edge,edge); 
} 
関連する問題