Exemplo n.º 1
0
 public void SetScreenEffect(ActionArguments args, WarUnit doer, Point2 center, IEnumerable<Point2> areaPoints, IEnumerable<Point2> validAreaPoints, int times, Action<int, int> callbackFunc)
 {
     var model = args.Model;
     int delay = 0;
     for (int i = 1; i <= times; i++)
     {
         foreach (var p in areaPoints)
         {
             var anime = model.CreateDirectedUniformMotionAnimationOnMap(_surfaces, doer.Location, p, 0.125f);
             anime = new ExtendTimeAnimationSprite(anime, delay, 0);
             model.ChipAnimations.Add(anime, callbackFunc.GetCurrying(i, times));
             delay += 300;
         }
     }
 }
 /// <summary>
 /// 指定したサーフェイスが等速に直線移動するアニメーションをマップチップ上に配置する
 /// </summary>
 /// <param name="surface"></param>
 /// <param name="points"></param>
 /// <param name="unitTotalTime"></param>
 /// <param name="changeTime"></param>
 /// <param name="endAnimationEvent"></param>
 public void SetContinuouslyMovingAnimationOnMap(Surface surface, IEnumerable<Point2> points, float unitTotalTime, float changeTime, Action endAnimationEvent)
 {
     var animes = _mapWindow.CreateContinuouslyMovingAnimationOnMap(surface, points, unitTotalTime);
     var count = animes.Count - 1;
     for (int i = 0; i < count; i++)
     {
         animes[i] = new ExtendTimeAnimationSprite(animes[i], changeTime);
     }
     _chipAnimations.Add(new ComplexAnimationSprite(animes), endAnimationEvent);
 }