delay()
関数を使用してアニメーションを作成しないでください。
draw()
関数が終了するまで(またはdraw()
関数を使用していない場合は、コードが終了するまで)何も画面に表示されません。すべてがオフスクリーンバッファーに描画され、draw()
関数が終了すると、バッファーは一度にすべて画面に描画されます。
だから、本当にそうで、オフスクリーンバッファに四角形を描画する100ミリ秒を待って、オフスクリーンバッファに別の四角形を描画し、100ミリ秒を待って、別の四角形を描画し、しています。待っているすべての作業が完了するまで、実際に画面上に何も表示されません。
アニメーションを作成する場合は、ループを使用しないでください。代わりにdraw()
関数をインクリメントするスケッチレベルの変数とともに使用するか、定義済みのframeCount
変数を使用してください。
別の問題は、同じ色の矩形を何度も何度も繰り返し描画していることです。灰色の四角形を描画し、その上に少し小さい灰色の四角形を描画し、その上にやや小さな四角形を描画します。したがって、描画する最初の矩形にブレンドされるので、実際には小さい方の矩形が表示されることはありません。
を実行し、より良い何が起こっているのかを理解するには、このプログラム:
noStroke();
fill(50,50,50);
rect(0,0,100,100,0);
fill(255, 0, 0);
rect(0,0,100,100,10);
fill(0, 255, 0);
rect(0,0,100,100,20);
あなたは[MCVE]の代わりに切断スニペットのを提供していただけますか? –
塗りつぶしの色のために半径の違いを判別できないことがありますか? –
'公共ボイドセットアップ(){ \t} \t \t公共ボイド設定(){ \t \tサイズ(800600)。 \t} \t公共ボイドドロー(){ \t \t(I = 0 int型、iが50 <; I ++の)のために{ \t \t \tストローク(100,0,0)。 \t \t \t fill(50,50,50); \t \t \t rect(0,0,100,100、i); \t \t \t System.out.println(i); \t \t \t遅延(100);予想通り、それがループを終了して一つだけの四角形を描画し、 \t \t} \tは} '私はこれにそれを変更し、それはまだ動作していません。 –