作成日 2015-06-18
最終更新日
ゲーム開発を題材に、プログラマー向けの数学や物理学を説明する書籍が販売されています。そのほとんどは、cやc++向けです。 そういった書籍で説明されている挙動をアニメーションで表現するための方法について考えていきたいと思っています。
フレームに基づいたアニメーション
WPFには、多くのアニメーションの仕組みが用意されています。 メニューやユーザーインターフェイスの装飾のために、いろいろなアニメーションの方法が準備されています。 ここでは、ゲームや、物理シミュレーションの用途で有用と思われるフレームに基づいたアニメーションを扱います。
仕組み
その機能の本体は、レンダリングコードが、十分に早く実行されている限り、連続的に、1/60秒ごとにイベントを発生させる機能です。 そして、処理が追いつかなければ遅延します。イベントハンドラを、CompositionTarget.Renderingイベントに添付することで、添付したイベントを1/60秒ごとに実行します。 1/60秒後の位置に移動させるコードをイベントに実装すればアニメーションが実現できます。
CompositionTarget.Rendering イベント(msdn)(外部サイト)
WPFアニメーション関連リンク
CompositionTarget.Renderingを使ったアニメーションの描画(外部サイト)
WPF アニメーション 1フレームごとの処理(外部サイト)
WPF CompositionTarget.Rendering でアニメーション(外部サイト)
CompositionTarget.Rendering イベント(外部サイト)
方法 : CompositionTarget を使用したフレームの間隔ごとの描画(外部サイト)
FPSの計測 (外部サイト)
WPF関連書籍
プログラミング Windows 第6版 第1章 WPF編 (外部サイト)
「プログラミング Windows 第6版」の紹介記事を書いたサイトがありましたのでリンクを貼っておきます。
「プログラミング Windows 第6版」はホームアプリ向けに書かれた書籍ですので、サンプルプログラムは、VisualStudio for Desktopでは、そのままでは動作しないので注意が必要です。