SpriteSheetTests ClassDelta Engine Documentation
Tests for the sprite sheet based animation View code on GitHub
Inheritance Hierarchy

System Object
  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

public class SpriteSheetTests : TestWithMocksOrVisually

The SpriteSheetTests type exposes the following members.

Constructors

  NameDescription
Public methodSpriteSheetTests
Initializes a new instance of the SpriteSheetTests class
Top
Methods

  NameDescription
Protected methodAdvanceTimeAndUpdateEntities (Inherited from TestWithMocksOrVisually.)
Public methodCheckDurationFromMetaData
Public methodCreateMaterial
Public methodCreateSpriteSheetAnimationWithNewTexture
Public methodCreateTwoSpriteSheetsWithSameDataResultsInSameAnimation
Public methodInitializeResolver (Inherited from TestWithMocksOrVisually.)
Public methodPlayFullAnimation
Protected methodRegisterMock T  (Inherited from TestWithMocksOrVisually.)
Public methodRenderAnimatedSprite
Public methodRenderingHiddenSpriteSheetAnimationDoesNotThrowException
Protected methodResolve T  (Inherited from TestWithMocksOrVisually.)
Protected methodRunAfterFirstFrame (Inherited from TestWithMocksOrVisually.)
Public methodRunTestAndDisposeResolverWhenDone (Inherited from TestWithMocksOrVisually.)
Top
Properties

  NameDescription
Protected propertyIsMockResolver (Inherited from TestWithMocksOrVisually.)
Top
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