void timer_EnterFrame(object sender, FrameEventArgs e) { // フレーム時間が長すぎると、バグるエフェクトがあるため、 // 時間を適度な短さに調整しています。 var MaxFrameTime = TimeSpan.FromMilliseconds(1000.0 / 20); var elapsed = MathEx.Min(e.ElapsedTime, MaxFrameTime); if (ShogiControl != null) { ShogiControl.Render(elapsed); } if (this.visualBackground != null) { this.visualBackground.Render(elapsed); } }
public ShogiWindow() { InitializeComponent(); ShogiControl.InitializeBindings(this); EffectManager = new EffectManager() { Background = this.visualBackground, }; ShogiControl.EffectManager = EffectManager; DataContext = Global.ShogiModel; Global.ShogiWindow = this; Closed += (_, __) => Global.ShogiWindow = null; EffectManager.ChangeMoveCount(1); this.timer = new FrameTimer( 30, timer_EnterFrame, Dispatcher); this.timer.Start(); }
/// <summary> /// コンストラクタ /// </summary> public CapturedPieceObject(ShogiControl shogi, BWType bwType, PieceType pieceType) { this.shogi = shogi; PieceType = pieceType; BWType = bwType; Count = 0; }