アニメーションは、Visual Basic の Image コントロールと Timer コントロールを使用して簡単に実現できます。この記事では、Visual Basic アニメーション プログラミングの基本原理と、3 種類のアニメーションを実現するためのプログラミング テクニックを紹介します。
1. 基本原則
----アニメーションは動きのシミュレーションであり、関連する一連の画像を画面上に素早く表示することで実現されます。したがって、アニメーションを実現するための基本は、画像の表示と、画像の高速かつ規則的な移動または変化です。----Visual Basic では、LoadPicture 関数を使用して、BMP、ICO、および WMF 形式のイメージ ファイルをメモリに読み込み、関数の戻り値を Image オブジェクトの Picture プロパティに割り当てて、Image オブジェクトにイメージを表示します。画像を移動または変更するには、次の 3 つの基本的な方法があります。
----Timer オブジェクトの Enabled プロパティは、Timer イベントが有効かどうかを決定します。 Enabled プロパティを True に設定すると、Timer イベントが開始されます (アニメーションの開始など)。False に設定すると、Timer イベントが無効になります (アニメーションの停止など)。
2. 動きのないアニメーション
----ディスプレイスメントなしアニメーションとは、アニメーション化されたオブジェクトは動かないが、画像は変化し続けることを意味します。典型的な例は、本をめくる場合です。動きのないアニメーションを実現する方法は、Image オブジェクトと Timer オブジェクトを設定し、Timer イベント プロセスで LoadPicture 関数を呼び出して異なる画像をロードし、Image オブジェクトの Picture 属性を割り当ててオブジェクト内に異なる画像を表示することです。つまり、イメージの変更を実装します。----以下はパラパラ漫画アニメーションの例です。プログラムが起動すると、開いた本がフォームに表示されます。本の反転を開始するには、マウスの左ボタンで本をクリックします。本の反転を停止するには、マウスの左ボタンで本を再度クリックします。ビットマップ ファイル book1.bmp ~ book4.bmp は、それぞれ本をめくったときにめくられるページのさまざまな位置を表し、現在のプロジェクトが存在するディレクトリに保存されます。
----アニメーションを表示する必要があるフォーム (Form1) に Image オブジェクト Image1 と Timer オブジェクト Timer1 を設定し、それらのプロパティを次の表に示すように設定します。リストにないプロパティについてはデフォルト値を使用します。
。
。
。
3. 単一フレームの変位アニメーション
----1フレームディスプレイスメントアニメーションとは、同じ画像の位置を常に変化させて作成するアニメーションのことで、典型的な例としては、雲が風に吹かれている様子などが挙げられます。単一フレームの変位アニメーションをプログラミングする方法は、Timer イベント中に Image オブジェクトの Move メソッドを呼び出して画像を移動することです。----以下は雲の動きの例です。プログラムが起動すると、フォーム内に雲が表示されます。その雲をマウスの左ボタンでクリックすると、雲がフォームの境界線に触れると方向が変わります。もう一度マウスの左ボタンで雲を動かすと、雲が動き始めます。ビットマップ ファイルcloud.bmpは、現在のプロジェクトが存在するディレクトリに保存されます。
----アニメーションを表示する必要があるフォーム (Form1) に Image オブジェクト Image1 と Timer オブジェクト Timer1 を設定し、それらのプロパティを次の表に示すように設定します。リストにないプロパティについてはデフォルト値を使用します。
。
。
。
----雲が境界にぶつかって反対方向に移動するとき、これは DetaX と DetaY の符号を変えることによって実現されることに注意してください。4. マルチフレームディスプレイスメントアニメーション
----マルチフレーム ディスプレイスメント アニメーションは、非ディスプレイスメント アニメーションと単一フレーム ディスプレイスメント アニメーションの特性を組み合わせた最も複雑なアニメーションです。自然界のほとんどの動きには、鳥の飛行など、マルチフレーム ディスプレイスメントの特徴があります。鳥の位置が移動すると、翼も羽ばたきます。マルチフレームのディスプレイスメントアニメーションを実装するには、Timerイベント処理中に画像の置換とImageオブジェクトの位置移動を同時に処理する必要があります。----以下は鳥が飛んでいる例です。プログラムが起動すると、フォーム内に鳥が表示され、それをマウスの左ボタンでクリックすると、鳥が羽ばたき始め、クリックすると飛ぶ方向が変わります。マウスの左ボタンをもう一度クリックすると、鳥は飛行を停止します。ビットマップ ファイル Bird1.bmp ~ Bird4.bmp はそれぞれ、鳥が飛ぶときの翼のさまざまな位置を表しており、現在のプロジェクトが存在するディレクトリに保存されています。
----アニメーションを表示する必要があるフォーム (Form1) に Image オブジェクト Image1 と Timer オブジェクト Timer1 を設定し、それらのプロパティを次の表に示すように設定します。リストにないプロパティについてはデフォルト値を使用します。
。
。
。
5. ズームアニメーション
----風船の膨張または収縮は、ズーム アニメーションの典型的な例です。ズーム アニメーションは、Timer イベント中に Image オブジェクトの width プロパティや Height プロパティを変更することで実装できます。ただし、オブジェクトの同心円状のスケーリングを表示したい場合は、同時に Image オブジェクトも移動する必要があります。----以下は、空中(同心円状)でのバルーンのスケーリングをシミュレートする例です。プログラムが起動すると、フォーム内にバルーンが表示されます。バルーンをマウスの左ボタンでクリックすると、バルーンがフォームの境界に達すると膨張し、元のサイズに戻ります。をクリックすると、再び展開され、バルーン上でマウスの左ボタンをクリックすると、バルーンの拡大縮小が停止します。ビットマップ ファイル Balloon.bmp は、現在のプロジェクトが存在するディレクトリに保存されます。
----アニメーションを表示する必要があるフォーム (Form1) に Image オブジェクト Image1 と Timer オブジェクト Timer1 を設定し、それらのプロパティを次の表に示すように設定します。リストにないプロパティについてはデフォルト値を使用します。
物体
財産
設定値
画像1
写真
...(プロジェクト ファイルへのパス)/Balloon.bmp
。
。
。
->