private void OnPositionChanged(GemController sender, int x, int y, bool interpolate)
 {
     Canvas.SetLeft(image, 50 + x * 32);
     Canvas.SetBottom(image, 50 + y * 32);
     Canvas.SetLeft(specialImage, 50 + x * 32);
     Canvas.SetBottom(specialImage, 50 + y * 32);
     if (interpolate)
     {
         OnMovingStart();
         Task.Delay(500).ContinueWith(__ =>
         {
             instance.OnMovingEnd();
         });
     }
     //else
     //{
     //    instance.OnMovingEnd();
     //}
 }
 private void OnPositionChanged(GemController sender, int x, int y, bool interpolate)
 {
     CurrentX = x;
     CurrentY = y;
     movingComponent.MoveTo(new Vector3(positionOffset.x * x + x, positionOffset.y * y + y), interpolate, () => { instance.OnMovingEnd(); });
     if (interpolate)
     {
         instance.OnMovingStart();
     }
 }