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); }
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); }