Tests for the sprite sheet based animation
View code on GitHub
Inheritance Hierarchy
DeltaEngine.Platforms TestWithMocksOrVisually
DeltaEngine.Rendering2D.Tests SpriteSheetTests
Namespace: DeltaEngine.Rendering2D.Tests
Assembly: DeltaEngine.Rendering2D.Tests (in DeltaEngine.Rendering2D.Tests.dll) Version: 1.1.1.0 (1.1.1)
Syntax
The SpriteSheetTests type exposes the following members.
Constructors
Name | Description | |
---|---|---|
![]() | SpriteSheetTests | Initializes a new instance of the SpriteSheetTests class |
Methods
Name | Description | |
---|---|---|
![]() | AdvanceTimeAndUpdateEntities | (Inherited from TestWithMocksOrVisually.) |
![]() | CheckDurationFromMetaData | |
![]() | CreateMaterial | |
![]() | CreateSpriteSheetAnimationWithNewTexture | |
![]() | CreateTwoSpriteSheetsWithSameDataResultsInSameAnimation | |
![]() | InitializeResolver | (Inherited from TestWithMocksOrVisually.) |
![]() | PlayFullAnimation | |
![]() | RegisterMock T | (Inherited from TestWithMocksOrVisually.) |
![]() | RenderAnimatedSprite | |
![]() | RenderingHiddenSpriteSheetAnimationDoesNotThrowException | |
![]() | Resolve T | (Inherited from TestWithMocksOrVisually.) |
![]() | RunAfterFirstFrame | (Inherited from TestWithMocksOrVisually.) |
![]() | RunTestAndDisposeResolverWhenDone | (Inherited from TestWithMocksOrVisually.) |
Properties
Name | Description | |
---|---|---|
![]() | IsMockResolver | (Inherited from TestWithMocksOrVisually.) |
Examples
[Test, ApproveFirstFrameScreenshot] public void RenderAnimatedSprite() { new Sprite(material, new Rectangle(0.4f, 0.4f, 0.2f, 0.2f)); }
[Test, CloseAfterFirstFrame] public void CheckDurationFromMetaData() { var animation = new Sprite(material, center); Assert.AreEqual(1, animation.Material.SpriteSheet.DefaultDuration); Assert.AreEqual(1, animation.Material.Duration); }
[Test, CloseAfterFirstFrame] public void PlayFullAnimation() { var animation = new Sprite(material, center); bool endedHasBeenRaised = false; animation.AnimationEnded += () => endedHasBeenRaised = true; animation.Elapsed = animation.Material.Duration; AdvanceTimeAndUpdateEntities(); Assert.True(endedHasBeenRaised); }
[Test] public void CreateSpriteSheetAnimationWithNewTexture() { var imageData = new ImageCreationData(new Size(8, 8)) { BlendMode = BlendMode.Opaque }; var image = ContentLoader.Create<Image>(imageData); FillImage(image); var animationData = new SpriteSheetAnimationCreationData(image, 2, new Size(2, 2)); var texturedShader = ContentLoader.Create<Shader>( new ShaderCreationData(ShaderFlags.Position2DTextured)); var newMaterial = ContentLoader.Create<SpriteSheetAnimation>(animationData).CreateMaterial(texturedShader); new Sprite(newMaterial, Rectangle.HalfCentered); }
[Test, CloseAfterFirstFrame] public void CreateTwoSpriteSheetsWithSameDataResultsInSameAnimation() { var imageData = new ImageCreationData(new Size(8, 8)) { BlendMode = BlendMode.Opaque }; var image = ContentLoader.Create<Image>(imageData); var animationData1 = new SpriteSheetAnimationCreationData(image, 2, new Size(2, 2)); var animationData2 = new SpriteSheetAnimationCreationData(image, 2, new Size(2, 2)); Assert.IsTrue(animationData1.Equals(animationData2)); var animation1 = ContentLoader.Create<SpriteSheetAnimation>(animationData1); var animation2 = ContentLoader.Create<SpriteSheetAnimation>(animationData2); Assert.AreEqual(animation1.Image, animation2.Image); var texturedShader = ContentLoader.Create<Shader>( new ShaderCreationData(ShaderFlags.Position2DTextured)); Assert.AreEqual(animation1.CreateMaterial(texturedShader), animation2.CreateMaterial(texturedShader)); }
[Test, CloseAfterFirstFrame] public void RenderingHiddenSpriteSheetAnimationDoesNotThrowException() { new Sprite(material, Rectangle.One) { IsVisible = false }; Assert.DoesNotThrow(() => AdvanceTimeAndUpdateEntities()); }
See Also