示例#1
0
 /// <summary>
 /// 在3D空间的Z轴方向移动模型到目标点
 /// </summary>
 /// <param name="geom">模型实例</param>
 /// <param name="descriptor">模型的描述子</param>
 /// <param name="duration">动画时长</param>
 /// <param name="toZ">目标Z</param>
 /// <param name="accZ">加速度Z</param>
 public static void ZMoveToAnimation3D(GeometryModel3D geom, ModelDescriptor3D descriptor, Duration duration, double toZ, double accZ = 0)
 {
     if (geom == null)
     {
         return;
     }
     SpriteAnimation.ZMoveAnimation3D(geom, descriptor, duration, descriptor.OffsetZ, toZ, accZ);
 }
示例#2
0
 /// <summary>
 /// 在3D空间的Y轴方向移动模型到目标点
 /// </summary>
 /// <param name="geom">模型实例</param>
 /// <param name="descriptor">模型的描述子</param>
 /// <param name="duration">动画时长</param>
 /// <param name="toY">目标Y</param>
 /// <param name="accY">加速度Y</param>
 public static void YMoveToAnimation3D(GeometryModel3D geom, ModelDescriptor3D descriptor, Duration duration, double toY, double accY = 0)
 {
     if (geom == null)
     {
         return;
     }
     SpriteAnimation.YMoveAnimation3D(geom, descriptor, duration, descriptor.OffsetY, toY, accY);
 }
示例#3
0
 /// <summary>
 /// 在3D空间的X轴方向移动模型到目标点
 /// </summary>
 /// <param name="geom">模型实例</param>
 /// <param name="descriptor">模型的描述子</param>
 /// <param name="duration">动画时长</param>
 /// <param name="toX">目标X</param>
 /// <param name="accX">加速度X</param>
 public static void XMoveToAnimation3D(GeometryModel3D geom, ModelDescriptor3D descriptor, Duration duration, double toX, double accX = 0)
 {
     if (geom == null)
     {
         return;
     }
     SpriteAnimation.XMoveAnimation3D(geom, descriptor, duration, descriptor.OffsetX, toX, accX);
 }
示例#4
0
 /// <summary>
 /// 在3D空间模型将不透明度更改到目标值
 /// </summary>
 /// <param name="geom">模型实例</param>
 /// <param name="descriptor">模型的描述子</param>
 /// <param name="duration">动画时长</param>
 /// <param name="toOpacity">目标不透明度</param>
 /// <param name="acc">加速度</param>
 public static void OpacityToAnimation3D(GeometryModel3D geom, ModelDescriptor3D descriptor, Duration duration, double toOpacity, double acc = 0)
 {
     if (geom == null)
     {
         return;
     }
     SpriteAnimation.OpacityAnimation3D(geom, descriptor, duration, descriptor.Opacity, toOpacity, acc);
 }
示例#5
0
 /// <summary>
 /// 在3D空间的Y轴方向移动模型
 /// </summary>
 /// <param name="geom">模型实例</param>
 /// <param name="descriptor3D">模型的描述子</param>
 /// <param name="duration">动画时长</param>
 /// <param name="fromZ">起始Z</param>
 /// <param name="toZ">目标Z</param>
 /// <param name="accZ">加速度Z</param>
 public static void ZMoveAnimation3D(GeometryModel3D geom, ModelDescriptor3D descriptor3D, Duration duration, double fromZ, double toZ, double accZ)
 {
     if (duration.TimeSpan.TotalMilliseconds == 0 ||
         GlobalConfigContext.GAME_PERFORMANCE_TYPE == GlobalConfigContext.PerformanceType.NoEffect)
     {
         var translator = (geom.Transform as Transform3DGroup).Children.First(t => t is TranslateTransform3D) as TranslateTransform3D;
         translator.OffsetZ = descriptor3D.OffsetZ = descriptor3D.ToOffsetZ;
     }
     else
     {
         DoubleAnimation cardAnimation = new DoubleAnimation
         {
             From         = fromZ,
             To           = toZ,
             Duration     = duration,
             FillBehavior = FillBehavior.Stop
         };
         if (accZ >= 0)
         {
             cardAnimation.AccelerationRatio = accZ;
         }
         else
         {
             cardAnimation.DecelerationRatio = -accZ;
         }
         var transform = (geom.Transform as Transform3DGroup).Children.First(t => t is TranslateTransform3D);
         var flagSb    = new Storyboard {
             Name = "FlagSb_" + DateTime.Now.Ticks
         };
         SpriteAnimation.aniDict[flagSb] = null;
         cardAnimation.Completed        += delegate
         {
             (transform as TranslateTransform3D).OffsetZ = descriptor3D.OffsetZ = descriptor3D.ToOffsetZ;
             SpriteAnimation.aniDict.Remove(flagSb);
         };
         transform.BeginAnimation(TranslateTransform3D.OffsetZProperty, cardAnimation);
     }
 }
示例#6
0
 /// <summary>
 /// 变更3D模型的不透明度
 /// </summary>
 /// <param name="geom">模型实例</param>
 /// <param name="descriptor3D">模型的描述子</param>
 /// <param name="duration">动画时长</param>
 /// <param name="fromOpacity">起始不透明度</param>
 /// <param name="toOpacity">目标不透明度</param>
 /// <param name="acc">加速度</param>
 public static void OpacityAnimation3D(GeometryModel3D geom, ModelDescriptor3D descriptor3D, Duration duration, double fromOpacity, double toOpacity, double acc)
 {
     if (duration.TimeSpan.TotalMilliseconds == 0 ||
         GlobalConfigContext.GAME_PERFORMANCE_TYPE == GlobalConfigContext.PerformanceType.NoEffect)
     {
         (geom.Material as DiffuseMaterial).Brush.Opacity = descriptor3D.Opacity = descriptor3D.ToOpacity;
     }
     else
     {
         DoubleAnimation opAnimation = new DoubleAnimation
         {
             From         = fromOpacity,
             To           = toOpacity,
             Duration     = duration,
             FillBehavior = FillBehavior.Stop
         };
         if (acc >= 0)
         {
             opAnimation.AccelerationRatio = acc;
         }
         else
         {
             opAnimation.DecelerationRatio = -acc;
         }
         var brusher = (geom.Material as DiffuseMaterial).Brush;
         var flagSb  = new Storyboard {
             Name = "FlagSb_" + DateTime.Now.Ticks
         };
         SpriteAnimation.aniDict[flagSb] = null;
         opAnimation.Completed          += delegate
         {
             (geom.Material as DiffuseMaterial).Brush.Opacity = descriptor3D.Opacity = descriptor3D.ToOpacity;
             SpriteAnimation.aniDict.Remove(flagSb);
         };
         brusher.BeginAnimation(Brush.OpacityProperty, opAnimation);
     }
 }