ワタタク
今回の記事の目的はProcessingの「isLooping()
」を理解し、自分なりに使ってみること。
目次
【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();
}
}