コード例 #1
0
        public override void Play(GameView view, Action <object[]> onComplete, params object[] args)
        {
            var longestDuration = TimeSpan.Zero;
            var columns         = args[0] as List <List <Animal> >;

            if (columns == null)
            {
                return;
            }

            foreach (var column in columns)
            {
                for (var index = 0; index < column.Count; index++)
                {
                    var animal = column[index];

                    var duration = TimeSpan.FromSeconds(((new Vector2(animal.X * view.TileSize.Y + (view.TileSize.Y / 2.0F),
                                                                      animal.Y * view.TileSize.Y + (view.TileSize.Y / 2.0F)).Y - animal.Sprite.LocalPosition.Y) / view.TileSize.Y) * 0.1F);

                    if (duration + TimeSpan.FromSeconds(0.05F + (0.15F * index)) > longestDuration)
                    {
                        longestDuration = duration + TimeSpan.FromSeconds(0.05F + (0.15F * index));
                    }

                    animal.Sprite.AddActivity(new ActivitySequence(new Activity[]
                    {
                        new WaitActivity(TimeSpan.FromSeconds(0.05F + (0.15F * index))),
                        new MoveActivity(new Vector2(animal.X * view.TileSize.Y + (view.TileSize.Y / 2.0F), animal.Y * view.TileSize.Y + (view.TileSize.Y / 2.0F)), duration, EaseMode.Out)
                    }));
                }
            }

            view.AddActivity(new WaitActivity(longestDuration, onComplete));
        }
コード例 #2
0
        public override void Play(GameView view, Action<object[]> onComplete, params object[] args)
        {
            var longestDuration = TimeSpan.Zero;
            var columns = args[0] as List<List<Animal>>;

            if (columns == null)
                return;

            foreach (var column in columns)
            {
                for (var index = 0; index < column.Count; index++)
                {
                    var animal = column[index];

                    var duration = TimeSpan.FromSeconds(((new Vector2(animal.X * view.TileSize.Y + (view.TileSize.Y / 2.0F),
                        animal.Y * view.TileSize.Y + (view.TileSize.Y / 2.0F)).Y - animal.Sprite.LocalPosition.Y) / view.TileSize.Y) * 0.1F);

                    if (duration + TimeSpan.FromSeconds(0.05F + (0.15F * index)) > longestDuration)
                        longestDuration = duration + TimeSpan.FromSeconds(0.05F + (0.15F * index));

                    animal.Sprite.AddActivity(new ActivitySequence(new Activity[]
                    {
                        new WaitActivity(TimeSpan.FromSeconds(0.05F + (0.15F * index))),
                        new MoveActivity(new Vector2(animal.X * view.TileSize.Y + (view.TileSize.Y / 2.0F), animal.Y * view.TileSize.Y + (view.TileSize.Y / 2.0F)), duration, EaseMode.Out)
                    }));
                }
            }

            view.AddActivity(new WaitActivity(longestDuration, onComplete));
        }
コード例 #3
0
        public override void Play(GameView view, Action<object[]> onComplete, params object[] args)
        {
            var columns = args[0] as List<List<Animal>>;
            if (columns == null)
                return;

            var longestDuration = TimeSpan.Zero;
            foreach (var column in columns)
            {
                for (var index = 0; index < column.Count; index++)
                {
                    var animal = column[index];

                    view.DropAnimal(animal, column[0].Y - 1);
                    var duration = TimeSpan.FromSeconds((animal.Y - (column[0].Y - 1)) * 0.1F);

                    if (duration + TimeSpan.FromSeconds(0.1F + (0.2F * (column.Count - index - 1))) > longestDuration)
                        longestDuration = duration + TimeSpan.FromSeconds(0.1F + (0.2F * (column.Count - index - 1)));

                    animal.Sprite.AddActivity(new ActivitySequence(new Activity[]
                    {
                        new WaitActivity(TimeSpan.FromSeconds(0.1F + (0.2F * (column.Count - index - 1)))),
                        new ActivityGroup(new Activity[]
                        {
                            new FadeActivity(FadeActivity.Fade.In, TimeSpan.FromSeconds(0.05F), EaseMode.InOut),
                            new MoveActivity(new Vector2((animal.X * view.TileSize.X) + (view.TileSize.X / 2),
                                (animal.Y * view.TileSize.Y) + (view.TileSize.Y / 2)), duration, EaseMode.Out)
                        })
                    }));
                }
            }

            view.AddActivity(new WaitActivity(longestDuration, onComplete));
        }
コード例 #4
0
ファイル: AnimationMatches.cs プロジェクト: MSigma/ZooBurst
        public override void Play(GameView view, Action<object[]> onComplete, params object[] args)
        {
            var chains = args[0] as List<Chain>;

            if (chains == null)
                return;

            foreach (var animal in chains.SelectMany(chain => chain.Animals))
            {
                animal.Sprite?.AddActivity(new ScaleActivity(animal.Sprite.Scale, 0.01F, TimeSpan.FromSeconds(0.33F), EaseMode.Out, e =>
                {
                    animal.Sprite?.Detach();
                    animal.SetSprite(null);
                }));
            }

            view.AddActivity(new WaitActivity(TimeSpan.FromSeconds(0.33F), onComplete));
        }
コード例 #5
0
        public override void Play(GameView view, Action <object[]> onComplete, params object[] args)
        {
            var chains = args[0] as List <Chain>;

            if (chains == null)
            {
                return;
            }

            foreach (var animal in chains.SelectMany(chain => chain.Animals))
            {
                animal.Sprite?.AddActivity(new ScaleActivity(animal.Sprite.Scale, 0.01F, TimeSpan.FromSeconds(0.33F), EaseMode.Out, e =>
                {
                    animal.Sprite?.Detach();
                    animal.SetSprite(null);
                }));
            }

            view.AddActivity(new WaitActivity(TimeSpan.FromSeconds(0.33F), onComplete));
        }
コード例 #6
0
        public override void Play(GameView view, Action <object[]> onComplete, params object[] args)
        {
            var columns = args[0] as List <List <Animal> >;

            if (columns == null)
            {
                return;
            }

            var longestDuration = TimeSpan.Zero;

            foreach (var column in columns)
            {
                for (var index = 0; index < column.Count; index++)
                {
                    var animal = column[index];

                    view.DropAnimal(animal, column[0].Y - 1);
                    var duration = TimeSpan.FromSeconds((animal.Y - (column[0].Y - 1)) * 0.1F);

                    if (duration + TimeSpan.FromSeconds(0.1F + (0.2F * (column.Count - index - 1))) > longestDuration)
                    {
                        longestDuration = duration + TimeSpan.FromSeconds(0.1F + (0.2F * (column.Count - index - 1)));
                    }

                    animal.Sprite.AddActivity(new ActivitySequence(new Activity[]
                    {
                        new WaitActivity(TimeSpan.FromSeconds(0.1F + (0.2F * (column.Count - index - 1)))),
                        new ActivityGroup(new Activity[]
                        {
                            new FadeActivity(FadeActivity.Fade.In, TimeSpan.FromSeconds(0.05F), EaseMode.InOut),
                            new MoveActivity(new Vector2((animal.X * view.TileSize.X) + (view.TileSize.X / 2),
                                                         (animal.Y * view.TileSize.Y) + (view.TileSize.Y / 2)), duration, EaseMode.Out)
                        })
                    }));
                }
            }

            view.AddActivity(new WaitActivity(longestDuration, onComplete));
        }