演習問題: 問題1

「練習: 形状が指定されている魚」を参考に、 魚が左から右に泳ぐ様子をアニメーションにしなさい。

提出ファイル名: fishPassing.pde

演習問題: 問題1 (穴埋め)

// 定数
final int[] fish = new int[] {            // 魚の形状 (右向き)
  0, 0, 70, 30, //  胴体の相対位置(x,y)・横幅・縦幅
  -38, 0, 15, 25 // 尾びれの相対位置(x,y)・横幅・縦幅
};
final int bodyX = 0;
final int bodyY = 1;
final int bodyLength = 2;
final int bodyWidth =3;
final int finX = 4;
final int finY = 5;
final int finLength = 6;
final int finWidth = 7;
// 変数
int x;                             // 魚の中心の x座標
int y;                             // 魚の中心の y座標
int vx;                            // 魚の進む速さ

void setup() {
  size(400, 400);             // ウィンドウのサイズ
  noStroke();                 // 輪郭線を無効に
  background(63, 63, 255);    // 背景色
  fill(63, 31, 31);           // 塗る色

  // 変数の初期値
  x = 100;
  y = 200;
  vx = 1;
}

void draw() {
  // ここを考える
}

演習問題: 問題2

問題1 を変更し、魚が右端に到達したときに停止するようにしなさい。

提出ファイル名: fishFailedToEscape.pde

演習問題: 問題3

問題1 をもとに、魚がマウスカーソルのある方角へ進んでいくアニメーションにしなさい。 魚の進む向きにより、体の左側が見えるか右側が見えるか変化することに注意すること。

提出ファイル名: fishTurning.pde

演習問題: 問題3 ヒント

演習問題: 問題3 (穴埋め)

// 定数
final int[] fishToLeft  = new int[] {    // 魚の形状 (左向き)
  0, 0, 70, 30,                          // 胴体の相対位置(x,y)・横幅・縦幅
  38, 0, 15, 25                          // 尾びれの相対位置(x,y)・横幅・縦幅
};
final int[] fishToRight = new int[] {    // 魚の形状 (右向き)
  0, 0, 70, 30,
  -38, 0, 15, 25
};
final int bodyX = 0;
final int bodyY = 1;
final int bodyLength = 2;
final int bodyWidth =3;
final int finX = 4;
final int finY = 5;
final int finLength = 6;
final int finWidth = 7;

演習問題: 問題3 (穴埋め)

// 変数
int x;                             // 魚の中心の x座標
int y;                             // 魚の中心の y座標
int vx;                            // 魚の進む速さ
int[] fish;                        // 現在の魚の形状

void setup() {
  size(400, 400);             // ウィンドウのサイズ
  noStroke();                 // 輪郭線を無効に
  background(63, 63, 255);    // 背景色
  fill(63, 31, 31);           // 塗る色

  // 変数の初期値
  x = 100;
  y = 200;
  vx = 1;
  fish = fishToRight;         // 変数 fish は 変数 fishToRight と同じ配列を参照
}

void draw() {
  // ここを考える
}

演習問題: 問題4

問題3 をもとに、マウスの位置に合わせて魚が水深を変え、上下方向にも移動するようにしなさい。 動く速度の変化のしかたは任意とする。

以下の例ではマウスの位置にエサを表示している。

提出ファイル名: fishClosing.pde

演習問題: 問題5 (Advanced)

魚が複数匹泳ぐアニメーションにしなさい。 動きやマウス操作による変化は各自工夫すること。

色は水深など魚の位置に応じて変化するようにすること。

提出ファイル名: fishDancing.pde

(以下のアニメーションは例)

演習問題: 問題5 参考 (複数匹を配列で管理)