コードスペランカー

ゲーム開発日誌など

WPFのお勉強 描画編その2

前回の続きで今回は画面の更新を行う。
WPFは基本的には今までのWindowsアプリと一緒でイベント型なので何らかのイベントがないと数値の更新は行われない。なので、アニメーション等の画面の更新が必要な場合はそれなりのイベントを用意する必要がある。ってなわけで、Timerコンポーネントの代わりに使うのがDispatcherTimerとなる。

using System.Windows.Threading;
namespace hoge
{
  DispatcherTimer _dispatcherTimer;
  public MainWindow()
  {
    InitializeComponent();

    _dispatcherTimer = new DispatcherTimer();
    _dispatcherTimer.Interval = TimeSpan.FromMilliseconds(100);
    _dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
    _dispatcherTimer.Start();
  }

  public void dispatcherTimer_Tick(object sender, EventArgs e)
  {
    // なんか処理
  }
}

というのが100ms毎に処理を呼ぶ方法になる。この処理に前回書いたLineオブジェクトの更新を書いておけば10FPSにて画面を更新することが可能だ。