ゲームループによるアニメーション今回のプログラムは、タイマによるアニメーションの節で取り上げた内容をゲームループで実装したものです。lp;}OBJECT構造体は、バックバッファに描画するオブジェクト(ビットマップ)の情報を格納しています。これは、CreateObjectで初期化されます。TRUE;}bUpはオブジェクトの輝度が上昇する場合にTRUEになり、nBrightはオブジェクトの輝度を示す値です。これらは、Moveで更新されることになります。xからcyは、オブジェクトの描画位置とサイズを格納します。これらは、Renderでオブジェクトが描画される際に参照されます。輝度の変更速度は、spaceキーが押下されている場合に上昇します。このときにはnSpeedの値を変更すれば、輝度の変更速度は上昇します。ゲーム中でのキーの押下はGetAsyncKeyStateを使用します。今回のようなMoveとRenderの使い方はあまり好ましくありません。その関数は他のソースファイルで管理したほうが効率的です。このようにすれば、ウインドウ関連のコードの汎用性も高まるでしょう。次に、実装の一例を示します。そのシーン専用のデータ更新の関数を呼び出しています。Renderの処理でも、関数名の違いはあれ上記のようになるでしょう。作成と破棄のための関数も実装することになるはずです。必要となるであろう関数を列挙しておくのが有効だと思われます。