トップページに、Processingについて書いた記事を、辞書のように見つけやすくしてみました

【Processing】isLooping関数の使い方【動くか、止まるかをコントロールしたいとき】

【Processing】isLooping関数の使い方【動くか、止まるかをコントロールしたいとき】
  • URLをコピーしました!
ワタタク

今回の記事の目的はProcessingの「isLooping()」を理解し、自分なりに使ってみること。

記事内のProcessingのバージョンは4.3。

動きのある画像は、コードではなく、GIF画像編集で無限再生されるようにしています。

目次

【Processing】isLooping関数について(構文)

isLooping関数について
  • isLooping()の英語の意味
    • 今、動いてる?という意味
  • draw関数の中で書かれたコードは何度も何度も繰り返し実行される、それをループという
    • isLooping()は今、そのループが動いてるか確認するための関数
    • 今、動いてる?動いてない?を意識しているとコードを読みやすい

【Processing】isLooping関数の主な書き方

void mousePressed () {
if(isLooping()) {
noLoop();
} else {
loop();
}
}

isLooping()がtrueを返す場合:ループが動いているので、noLoop()を呼び出してアニメーションを止めます。

isLooping()がfalseを返す場合:ループが止まっているので、loop()を呼び出してアニメーションを再開します。

isLooping()は「今、動いてる?」と聞いて、動いているなら止める、止まっているなら動かす、ということをしているんです。

【Processing】isLooping関数の使い方【画像とコード】

mousePressedとisLooping関数を組み合わせる

float x = 0;
float speed = 10;

void setup() {
  size(500, 500);
}

void draw() {
 background(0); 

fill(random(255), random(255), random(255));

rect(x++, height/2 -25, 50, 50);

if ( x > width) {
  x = 0;
 }
}

 // isLoopingの主な書き方
void mousePressed() {
 if(isLooping()) {
   noLoop();
 } else {
   loop();
 }
}

keyPressed関数とisLooping関数を組み合わせる

20行目をmousePressedからkeyPressedに変える。

キーを押したら止まったり、動いたりする。

float x = 0;
float speed = 10;

void setup() {
  size(500, 500);
}

void draw() {
 background(0); 

fill(random(255), random(255), random(255));

rect(x++, height/2 -25, 50, 50);

if ( x > width) {
  x = 0;
 }
}

void keyPressed() {
 if(isLooping()) {
   noLoop();
 } else {
   loop();
 }
}

【Processing】isLoopingはどんな表現で使えそうか

だるまさんがころんだケームとかで使える。

【Processing】isLoopingを使ってみた感想

draw内の動作を動かしたり止めたりしたいときは、以下のコードを定型文として使えばいいと思っておくことにした。

void mousePressed () {
if(isLooping()) {
noLoop();
} else {
loop();
}
}

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次