ソフトウェア設計及び演習2015

アニメーションの実装の仕方

GDK2015::アニメーションも参考にしてください.

動くものを表示するプログラムの構造

例として,平面上を動くボールの表示を考えます.

そのプログラムは,次の二つからなっているかもしれません.

  1. ボールが動いている世界をコンピュータの中に作リ出すこと
  2. その世界の様子を,画面を通して,人に見せること

世界

  • 世界は平面であり,2次元座標で表し,正方形とします.
  • 世界は壁で囲まれています.

ボール

  • ボールは,初期の方向ベクトルと,初速度,(自身がいる)位置を持っています.

このボールの位置を計算することは簡単にできます.(ベクトル,速度)

世界を飛び出さないようにするチェックも簡単です.

表示

ボールが動いているように見せるにはどうしたらよいでしょうか.

一般的には,静止画を,一定時間間隔で表示することで実現します.

  • 時間間隔中にボールが動いたかどうかを計算し,ボールを描く位置を決めます.
  • 背景を描き,それに重ねてボールを今の位置に描けばいいわけです.

では、ボールが二つになった場合は,どうなるでしょう?

  • 同じです.二つのボールのそれぞれの位置を計算し,背景を描き,個々のボールを描けばいいのです.

一つのボールの場合と二つのボールの場合で何が違っているでしょう?

  • 表示されているボールの世界の時間と, コンピュータの中の時間がずれています.

プログラムの中では,表示される世界のごく短い時間間隔を進めるループを作ります. ループの中では,その時間内に起り得るすべてのことを,少しずつ進めます.


最終更新日:2015/06/12 15:17:48