public static void IdentifiableContentComponent_SpriteAnimationTest() { var spriteAnimation = new SpriteAnimation(); var spriteAnimator = new SpriteAnimator(spriteAnimation); var spriteAnimationId = spriteAnimation.Id; var steps = new List <SpriteAnimationStep>(); for (var i = 0; i < 10; i++) { var step = new SpriteAnimationStep(); step.Sprite = new Sprite(); steps.Add(step); spriteAnimation.AddStep(step); } ; var firstStep = steps.First(); var firstSpriteId = firstStep.Sprite.Id; Assert.True(spriteAnimator.HasContent(firstSpriteId)); spriteAnimator.RemoveContent(firstSpriteId); Assert.False(spriteAnimator.HasContent(firstSpriteId)); Assert.Null(firstStep.Sprite); var lastStep = steps.Last(); var lastSpriteId = lastStep.Sprite.Id; Assert.True(spriteAnimator.HasContent(lastSpriteId)); spriteAnimator.RemoveContent(lastSpriteId); Assert.False(spriteAnimator.HasContent(lastSpriteId)); Assert.Null(lastStep.Sprite); Assert.True(spriteAnimator.HasContent(spriteAnimationId)); spriteAnimator.RemoveContent(spriteAnimationId); Assert.False(spriteAnimator.HasContent(spriteAnimationId)); }
protected override void LoadContent() { base.LoadContent(); var scene = new Scene(); var cameraScroller = new CameraScroller(); scene.AddChild(cameraScroller); var camera = new Camera(); cameraScroller.AddChild(camera); var movingDot = new MovingDot(); camera.AddChild(movingDot); var spriteRenderer = new SpriteRenderer(); spriteRenderer.Sprite = new Sprite("WhiteSquare", this.Content, Point.Zero, new Point(32, 32)); spriteRenderer.OffsetType = OffsetType.Center; movingDot.AddChild(spriteRenderer); var spriteAnimation = new SpriteAnimation(); var step = spriteAnimation.AddStep(); step.Sprite = new Sprite("ColoredSquares", this.Content, Point.Zero, new Point(64, 64)); step.Frames = 2; step = spriteAnimation.AddStep(); step.Sprite = new Sprite("ColoredSquares", this.Content, new Point(0, 64), new Point(64, 64)); step.Frames = 2; step = spriteAnimation.AddStep(); step.Sprite = new Sprite("ColoredSquares", this.Content, new Point(64, 64), new Point(64, 64)); step.Frames = 2; step = spriteAnimation.AddStep(); step.Sprite = new Sprite("ColoredSquares", this.Content, new Point(64, 0), new Point(64, 64)); step.Frames = 2; var spriteAnimator = new SpriteAnimator(spriteAnimation) { FrameRate = 4 }; var spriteRenderer2 = spriteAnimator.AddChild <SpriteRenderer>(); spriteRenderer2.DrawOrder = -100; spriteRenderer2.OffsetType = OffsetType.Center; scene.AddChild(spriteAnimator); var spinner = new Spinner(); spinner.LocalPosition -= new Vector2(2f, 0); scene.AddChild(spinner); var spriteRenderer3 = new SpriteRenderer(); spinner.AddChild(spriteRenderer3); spriteRenderer3.DrawOrder = -200; spriteRenderer3.Sprite = new Sprite("WhiteSquare", this.Content, Point.Zero, new Point(32, 32)); spriteRenderer3.OffsetType = OffsetType.Center; var middleSpinningDotBoundingArea = new BoundingAreaDrawer(); spriteRenderer3.AddChild(middleSpinningDotBoundingArea); middleSpinningDotBoundingArea.Color = Color.Red; middleSpinningDotBoundingArea.LineThickness = 3f; var spinner2 = new Spinner(); spinner.AddChild(spinner2); spinner2.LocalPosition -= new Vector2(2f, 0f); var spriteRenderer4 = new SpriteRenderer(); spinner2.AddChild(spriteRenderer4); spriteRenderer4.DrawOrder = 100; spriteRenderer4.Sprite = new Sprite("WhiteSquare", this.Content, Point.Zero, new Point(32, 32)); spriteRenderer4.OffsetType = OffsetType.Center; var outwardSpinningDotBoundingArea = new BoundingAreaDrawer(); spriteRenderer4.AddChild(outwardSpinningDotBoundingArea); outwardSpinningDotBoundingArea.Color = Color.Red; outwardSpinningDotBoundingArea.LineThickness = 3f; var textRenderer = new TextRenderer(); scene.AddChild(textRenderer); textRenderer.Text = "Hello, World"; textRenderer.Font = new Font() { ContentPath = "Arial" }; textRenderer.Color = Color.Pink; textRenderer.LocalScale = new Vector2(2f, 2f); textRenderer.LocalPosition -= new Vector2(5f, 5f); var textRendererBoundingArea = new BoundingAreaDrawer(); textRendererBoundingArea.Color = Color.Red; textRendererBoundingArea.LineThickness = 3f; textRenderer.AddChild(textRendererBoundingArea); scene.AddChild(new MouseClickDebugger()); scene.SaveToFile(@"TestGame - CurrentLevel.json", new Serializer()); this.CurrentScene = new Serializer().Deserialize <Scene>(@"TestGame - CurrentLevel.json"); var arrowSprite1 = PrimitiveDrawer.CreateArrowSprite(this.GraphicsDevice, 32, Color.Goldenrod); var arrowSpriteRenderer1 = new SpriteRenderer(); arrowSpriteRenderer1.Sprite = arrowSprite1; arrowSpriteRenderer1.LocalPosition += new Vector2(2f, -2f); this.CurrentScene.AddChild(arrowSpriteRenderer1); var arrowSprite2 = PrimitiveDrawer.CreateArrowSprite(this.GraphicsDevice, 32); var arrowSpriteRenderer2 = new SpriteRenderer(); arrowSpriteRenderer2.Color = Color.LawnGreen; arrowSpriteRenderer2.Sprite = arrowSprite2; arrowSpriteRenderer2.LocalPosition += new Vector2(3f, -1f); arrowSpriteRenderer2.LocalScale = new Vector2(0.75f, 2f); arrowSpriteRenderer2.LocalRotation.Angle = 1f; this.CurrentScene.AddChild(arrowSpriteRenderer2); var quadSprite1 = PrimitiveDrawer.CreateQuadSprite(this.GraphicsDevice, new Point(32, 32), Color.Magenta); var quadSpriteRenderer1 = new SpriteRenderer(); quadSpriteRenderer1.Sprite = quadSprite1; quadSpriteRenderer1.LocalPosition += new Vector2(3f, 2f); this.CurrentScene.AddChild(quadSpriteRenderer1); var quadSprite2 = PrimitiveDrawer.CreateQuadSprite(this.GraphicsDevice, new Point(32, 64)); var quadSpriteRenderer2 = new SpriteRenderer(); quadSpriteRenderer2.Color = Color.Khaki; quadSpriteRenderer2.Sprite = quadSprite2; quadSpriteRenderer2.LocalRotation.Angle = 0.5f; quadSpriteRenderer2.LocalPosition += new Vector2(3f, 1f); this.CurrentScene.AddChild(quadSpriteRenderer2); var rightTriangleSprite1 = PrimitiveDrawer.CreateRightTriangleSprite(this.GraphicsDevice, new Point(32, 32), Color.MediumVioletRed); var rightTriangleSpriteRenderer1 = new SpriteRenderer(); rightTriangleSpriteRenderer1.Sprite = rightTriangleSprite1; rightTriangleSpriteRenderer1.LocalPosition = new Vector2(-3f, 3f); this.CurrentScene.AddChild(rightTriangleSpriteRenderer1); }