問題1: 大きさの変化するボール1

ボールを斜めに落とした時の動きをアニメーションにする。 前回の問題2で、Ball クラスに move と draw のメソッドを実装した(ball_02_oo3.pde)。 このプログラムを変更し、 ボールの直径が次第に大きくなり、ある大きさに達すると、今度は次第に小さくなり、 ある小ささにになるとまた大きくなるようにしなさい。 ボールの直径の最小値と最大値をあらかじめ設定し、 大きくなる状態では最大値まで単調増加、 小さくなる状態では最小値まで単調減少するようにしなさい。 なお、大きくなる状態と小さくなる状態でボールの色も変えなさい。

提出ファイル名: ballEnlarged1.pde

問題1: 大きさの変化するボール1

ヒント

問題2: 大きさの変化するボール2

問題1のプログラムを変更し、 ボールの直径が最小値や最大値を超えようとするときだけでなく、 ボールが壁にあたって跳ね返るときにも、 大きくなる状態か小さくなる状態かが変化(反転)するようにしなさい。

提出ファイル名: ballEnlarged2.pde

問題2: 大きさの変化するボール2

ヒント

問題3: 一定回数跳ね返ると色が変化するボール

前回の問題2のプログラム (Ball クラスに move と draw のメソッドを実装したもの: ball_02_oo3.pde) と同じようにバウンドするボールを考える。 床で一定回数跳ね返ると色が変わるようにすること。 色が変化してからも、また一定回数床で跳ね返れば次の色に変化する。

ヒント: ボールに属性 bounds を設け、跳ね返り回数を管理するとよい。

提出ファイル名: ballColorChanging.pde

問題4: 重力の方向が変化する壁

前回の問題2のプログラム (Ball クラスに move と draw のメソッドを実装したもの: ball_02_oo3.pde) を変更し、一部の壁に当たると重力場(重力の方向)が変化するようにしなさい。

床に当たると重力が右向きに変化し、 右の壁に当たると重力が下向きに戻るようにしなさい (左の壁や天井に当たった場合は変化しない)。 反発係数は 0.60 とする。初速度はこれまでよりも小さめにすること。

提出ファイル名: ballGravityChanging.pde

問題4: 重力の方向が変化する壁

ヒント

問題5: 別の黒いボールに向かって加速するボール

これまでと同様にバウンドするボールを考える。 黒いボールは重力に従うが、水色のボールは重力に従わず、 黒いボールに向かって加速するものとする。

Ball クラスに、必要な属性・アクセサメソッドを追加して用いること。 なお、colorMode が HSB の場合には、B(brightness) の値を 0 にすると黒になる。

提出ファイル名: ballGravityOfTheOther.pde

問題6: 物体間の影響を利用したアニメーション (Advanced)

問題5 のように、ある物体の動きが他の物体の動きに影響を及ぼす、 独自のアニメーションを作成しなさい。

物体の種類は複数でもよい。

提出ファイル名: objectsInteraction.pde