アニメーションとユーザーインタラクション

変数は必要最小限のスコープで使用するのが基本です。 関数やブロックの中でしか使わない変数はローカル変数を使用しましょう。

しかし、アニメーションやユーザーインタラクションを含むプログラムでは、アプリケーション全体の状態を記憶するためにグローバル変数を使用する必要があります。 また、プログラム全体で使用される定数もグローバル変数にしておくと良い場合があります。

アニメーション

以下はボールが画面の 4 辺でバウンドしながら移動するアニメーションのプログラムです。

int r = 30;
int x = r;
int vx = 6;
int y = r;
int vy = 8;

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

void draw() {
  background(255);

  fill(255, 0, 0);
  noStroke();
  ellipse(x, y, 2 * r, 2 * r);

  if (x - r < 0 || width <= x + r) {
    vx *= -1;
  }

  if (y - r < 0 || height <= y + r) {
    vy *= -1;
  }

  x += vx;
  y += vy;
}

ボールの現在座標 xy とボールの速度 vxvyはアニメーション中に変化するのでグローバル変数が使用されています。 r はアニメーション中変更されませんが、関数内からも変更されていないので、定数の意味合いでグローバル変数が使用されています。

ユーザーインタラクション

以下は、画面をクリックした回数を画面に表示するプログラムです。

int count = 0;

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

void draw() {
  background(0);
  textAlign(CENTER, CENTER);
  text(count, width / 2, height / 2);
}

void mouseClicked() {
  count += 1;
}

クリックされた回数を記憶するグローバル変数 count を使用しています。

results matching ""

    No results matching ""