Java のアニメーション手法
Java でのアニメーションの方法とその高速化手法を説明します。
概要 /
デモについて /
戻る /
トップページ
概要
- アニメーションの方法とその高速化手法を説明します。
ImageFilter クラスライブラリ
の応用例にもなっています。
-
- ImageFilter のパラメーター値を少しずつ変化させて作った画像を
連続させて表示することで面白い効果が得られます。
例えば、net.antun.lib.awt.image.WaveImageFilter
を使うと画像が波打っているアニメーションを
させる事が出来ます。
(方法 1)
-
- ところが、この ImageFilter クラスライブラリは
パラメーターはすべてコンストラクタ中に指定するようになっているので
アニメーション用画像 1 コマごとに ImageFilter
オブジェクトを生成しなければならず、
効率が悪くなります。
そこで、パラメーター設定用のメソッドを追加します。
(方法 2)
-
- その方法でもリアルタイムに処理すると処理速度の遅さから
アニメーションがぎこちなくなってしまいます。
その対処方法として前もって
アニメーション用画像の全コマを作っておいて表示する方法が
思い付きます。
ただし、メモリ消費の激しさや前処理の時間がかかる欠点があります。
(方法 3)
-
- そこで Java 1.1 から使用可能になった
java.awt.image.MemoryImageSource
クラスのアニメーション機能を利用すると
かなりそれらの問題を解決できるようになります。
(方法 4)
デモについて
- 方法 1 〜方法 4 の解説のページには
それぞれの方法で
net.antun.lib.awt.image.WaveImageFilter
を実際にアニメーションさせたデモがあります。
処理速度の違いを比べてみてください。
-
- そのソースコードを公開しますが、
ライブラリーではないのでパッケージ名は net.antun では始めていませんので、
ご注意ください。
ソースコードはご自由に使って頂いて結構です。
-
-
animation.AnimationDemo
- デモ本体のアプレットです。
-
-
animation.AnimationCanvas
- アニメーション表示をする Canvas で
ダブルバッファリングをしています。
-
-
animation.Animation
- 各アニメーションクラスのスーパークラスです。
-
-
animation/image/baseImage.jpg
- デモに使われている画像です。
戻る