Graphics2D版とJavaFX版の違いについて

Graphics2D版とJavaFX版の違いについて

○描画処理の違い(1)
Graphics2D版では描画エンジンを自前で作成していた。
JavaFX版では、描画はJavaFXの仕組みの中で描画している。
(元々、処理速度低下にならないか懸念していたが、結果は問題なし)

○軽量化
Graphics2D版では、Componentを継承した部品群は利用せずに、
独自のオブジェクト(スプライトオブジェクト)を作成し、
Objectを継承していた。
Componentを継承した部品を多用すると、メモリの面、スピード面で、
不利と感じていた(検証はしていない)。

そのため、必要な機能のみに絞ったオブジェクトを作成することで、
軽量化を図っていた。
それが できた(実現できた)という背景もある。

○描画処理の違い(2)
しかし、JavaFX版ではその方法(独自オブジェクト管理)が使えないことが分かる。
JavaFXでは、Canvas-GraphicsContextで、
似たような仕組みを作ることは可能だが、同じではなかった。
回転/拡大縮小が、そのCanvasp全体に対して行われ、
途中の座標変換計算が、すべてサマリされた状態になるだけの模様。

Graphics2D版では、回転させて描画、また別の回転させて描画ということが可能だったが、
JavaFXでは、これができない。軸が全体的にずれてしまう。

自前で描画することを断念。
Nodeオブジェクト(Graphics2D版ではComponentに相当)を継承させ、
描画をJavaFXに任せる方式に変更。

○JavaFXアプリケーションスレッド
JavaFXでは、描画はJavaFXスレッドの中で自動で行われる。(最大1/60秒)
また、JavaFXスレッド以外から、JavaFXへのセッターメソッドなどを利用して値の変更を行うと、
Exceptionが発生する場合がある。

定期的な処理が必要な場合、定期的に呼び出されるタイマーを作成し(JavaFX用の)、
JavaFXスレッド上で処理を行う必要がある。

〇参考にさせていただいたサイト
http://krr.blog.shinobi.jp/
軽Lab。非常に参考にさせていただきました。
ありがとうございます(_ _*

シェアしていただけるとうれしいです。

投稿者:

kinchannn

きんです。 よろしくおねがいいたします。

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA