Ejemplo n.º 1
0
        private void ExecuteMove(DDLCMoveAction action)
        {
            _animater = new DispatcherTimer
            {
                Interval = TimeSpan.FromMilliseconds(10)
            };

            var originX = (double)action.Object.GetValue(Canvas.LeftProperty);
            var originY = (double)action.Object.GetValue(Canvas.TopProperty);
            var speedX  = action.Position.X / 100 / action.Speed;
            var speedY  = action.Position.Y / 100 / action.Speed;
            var count   = 0;

            _animater.Tick += (x, y) =>
            {
                if (count++ > action.Speed * 100 - 1)
                {
                    Monika.SetValue(Canvas.LeftProperty, originX + action.Position.X);
                    Monika.SetValue(Canvas.TopProperty, originY + action.Position.Y);
                    _actionIndex++;
                    _animater.Stop();
                    return;
                }

                action.Object.SetValue(Canvas.LeftProperty, (double)action.Object.GetValue(Canvas.LeftProperty) + speedX);
                action.Object.SetValue(Canvas.TopProperty, (double)action.Object.GetValue(Canvas.TopProperty) + speedY);
            };
            _animater.Start();
        }
Ejemplo n.º 2
0
 private void MonikaMove()
 {
     MonikaMover.Interval = new TimeSpan(0, 0, 0, 0, 2);
     MonikaMover.Tick    += (sender, arg) => Monika.SetValue(Canvas.LeftProperty, (double)(Monika.GetValue(Canvas.LeftProperty)) - 1);
     MonikaMover.Start();
 }