!!! 動くものを表示するプログラムの構造 例として,平面上を動くボールの表示を考えます. そのプログラムは,次の二つからなっているかもしれません. + ボールが動いている世界をコンピュータの中に作リ出すこと + その世界の様子を,画面を通して,人に見せること !! 世界 * 世界は平面であり,2次元座標で表し,正方形とします. * 世界は壁で囲まれています. !! ボール * ボールは,初期の方向ベクトルと,初速度,(自身がいる)位置を持っています. このボールの位置を計算することは簡単にできます.(ベクトル,速度) 世界を飛び出さないようにするチェックも簡単です. !! 表示 ボールが動いているように見せるにはどうしたらよいでしょうか. 一般的には,静止画を,一定時間間隔で表示します. * 時間間隔中にボールが動いたかどうかを計算し,ボールを描く位置を決めます. * 背景を描き,それに重ねてボールを今の位置に描けばいいわけです. では、ボールが二つになった場合は,どうなるでしょう? * 同じです.二つのボールのそれぞれの位置を計算し,背景を描き,個々のボールを描けばいいのです. 一つのボールの場合と二つのボールの場合で何が違っているでしょう? * 表示されているボールの世界の時間と, コンピュータの中の時間がずれています. プログラムの中では,表示される世界の'''ごく短い時間間隔を進めるループ'''を作ります. ループの中では,その時間内に起り得るすべてのことを,少しずつ進めます.