public void TestSimpleAnimation()
        {
            var source = new RectangleInt(10, 10, 20, 20);
            var origin = new Vector(4, 7);

            // ARRANGE
            var spriteSheet = new SpriteSheet(null, "toto");
            var definition1 = spriteSheet.AddSpriteDefinition("toto1", source, origin);
            var definition2 = spriteSheet.AddSpriteDefinition("toto2", source, origin);
            var template = spriteSheet.AddSpriteAnimationTemplate("tata")
                .AddFrame(definition1, 1.0f)
                .AddFrame(definition2, 2.5f);

            var expectedSprite1 = new Sprite(spriteSheet, "toto1");
            var expectedSprite2 = new Sprite(spriteSheet, "toto2");
            var expected = new SpriteAnimation("tata", new[]
            {
                new SpriteAnimationFrame(expectedSprite1, 1.0f),
                new SpriteAnimationFrame(expectedSprite2, 2.5f)
            });

            // ACT
            var actual = (SpriteAnimation)template.CreateInstance();

            // ASSERT
            AssertSprite.AnimationEqual(expected, actual);
        }
        public void TestAnimationWithTransform()
        {
            var source = new RectangleInt(10, 10, 20, 20);
            var origin = new Vector(4, 7);
            var transform1 = new SpriteTransform(translation: new Vector(4, -5), rotation: 2.4f, scale: 1.5f, color: Color.Blue);
            var transform2 = new SpriteTransform(translation: new Vector(-6, 3), rotation: -1.2f, scale: 3.0f, color: Color.Red);

            // ARRANGE
            var spriteSheet = new SpriteSheet(null, "toto");
            var definition1 = spriteSheet.AddSpriteDefinition("toto1", source, origin);
            var definition2 = spriteSheet.AddSpriteDefinition("toto2", source, origin);
            var template = spriteSheet.AddSpriteAnimationTemplate("tata")
                .AddFrame(definition1, 1.0f, transform1)
                .AddFrame(definition2, 2.5f, transform2);

            var expectedSprite1 = new Sprite(spriteSheet, "toto1");
            var expectedSprite2 = new Sprite(spriteSheet, "toto2");
            var expected = new SpriteAnimation("tata", new[]
            {
                new SpriteAnimationFrame(expectedSprite1, 1.0f, transform1),
                new SpriteAnimationFrame(expectedSprite2, 2.5f, transform2)
            });

            // ACT
            var actual = (SpriteAnimation)template.CreateInstance();

            // ASSERT
            AssertSprite.AnimationEqual(expected, actual);
        }
Example #3
0
        public static void AnimationEqual(SpriteAnimation expected, SpriteAnimation actual, string path = "")
        {
            BaseEqual(expected, actual, path);

            Assert.AreEqual(expected.Children.Count(), actual.Children.Count(), path + "Frame count");

            Assert.AreEqual(expected.AnimationState, actual.AnimationState);
            Assert.AreEqual(expected.TotalAnimationTime, actual.TotalAnimationTime);

            var tuples = expected.Children.OfType<SpriteAnimationFrame>()
                .Zip(actual.Children.OfType<SpriteAnimationFrame>(),
                    (e, a) => new Tuple<SpriteAnimationFrame, SpriteAnimationFrame>(e, a));

            var index = 0;
            foreach (var tuple in tuples)
            {
                var childPath = "A" + index + " - ";

                Assert.AreEqual(tuple.Item1.Duration, tuple.Item2.Duration, childPath + "Duration");
                Assert.AreEqual(tuple.Item1.Transform, tuple.Item2.Transform, childPath + "Transform");
                Assert.AreEqual(tuple.Item1.FrameSprite.GetType(), tuple.Item2.FrameSprite.GetType(), childPath + "FrameSprite Type");

                ChildSpriteEqual(tuple.Item1.FrameSprite, tuple.Item2.FrameSprite, childPath);

                index++;
            }
        }
        public void TestDefaultValueForEmptyAnimation()
        {
            var expected = new SpriteAnimation("tata", new SpriteAnimationFrame[] { });

            // ARRANGE
            var spriteSheet = new SpriteSheet(null, "toto");
            var template = spriteSheet.AddSpriteAnimationTemplate("tata");

            // ACT
            var actual = (SpriteAnimation)template.CreateInstance();

            // ASSERT
            AssertSprite.AnimationEqual(expected, actual);
        }