public static void TestConstructor() { Roga2dRenderObject renderObject = new Roga2dRenderObject(null, new Vector2(64, 64), new Vector2(32, 16), new Rect(0, 0, 1, 1)); Roga2dSprite sprite = new Roga2dSprite(renderObject); Tester.Match(renderObject.PixelSize, new Vector2(64, 64)); Tester.Match(renderObject.PixelCenter, new Vector2(32, 16)); Tester.Match(renderObject.SrcRect, new Rect(0, 0, 1, 1)); sprite.LocalPosition = new Vector2(1.0f, 2.0f); sprite.LocalRotation = 3.0f; sprite.LocalScale = new Vector2(-1.0f, -2.0f); // Check TextureObject Tester.Match(renderObject.Transform.localPosition, new Vector3(-1.0f, -0.5f, 0.0f)); // Check Sprite Root sprite.Update(); Tester.Match(sprite.Transform.localPosition, new Vector3(1.0f, 2.0f, 0.0f)); Tester.Match(sprite.Transform.localEulerAngles, new Vector3(0.0f, 0.0f, 3.0f)); Tester.Match(sprite.Transform.localScale, new Vector3(-1.0f, -2.0f, 1.0f)); // Check TextureObject Tester.Match(renderObject.Transform.localPosition, new Vector3(-1.0f, -0.5f, 0.0f)); sprite.Destroy(); }
public Roga2dSourceInterval(Roga2dSprite sprite, List<Roga2dAnimationKeyFrame> keyFrames, Roga2dAnimationSettings settings, Dictionary<string, Roga2dSwapTextureDef> options) { this.options = options; this.sprite = sprite; this.frameDuration = 0; this.settings = settings; this.lastAnimationId = ""; this.keyFrames = keyFrames; this.renderObjectDescs = new List<Roga2dRenderObjectDesc>(this.keyFrames.Count); string lastKeyFrameId = ""; foreach (Roga2dAnimationKeyFrame keyFrame in this.keyFrames) { if (keyFrame.Id != "" && keyFrame.Type == Roga2dAnimationKeyFrameType.Image) { Roga2dRenderObject renderObject; if (lastKeyFrameId == keyFrame.Id) { renderObject = renderObjectDescs[renderObjectDescs.Count - 1].RenderObject; } else { renderObject = new Roga2dRenderObject(keyFrame.Id, keyFrame.PixelSize, keyFrame.PixelCenter, keyFrame.Rect); } Roga2dRenderObjectDesc desc = new Roga2dRenderObjectDesc(); desc.RenderObject = renderObject; desc.SrcRect = keyFrame.Rect; desc.PixelSize = keyFrame.PixelSize; renderObjectDescs.Add(desc); lastKeyFrameId = keyFrame.Id; } else { renderObjectDescs.Add(null); lastKeyFrameId = ""; } this.duration += keyFrame.Duration; } }
public static void TestConstructor() { Roga2dRenderObject renderObject = new Roga2dRenderObject(null, new Vector2(64, 64), new Vector2(32, 16), new Rect(0, 0, 1, 1)); Tester.Match(renderObject.PixelSize, new Vector2(64, 64)); Tester.Match(renderObject.PixelCenter, new Vector2(32, 16)); Tester.Match(renderObject.SrcRect, new Rect(0, 0, 1, 1)); renderObject.Destroy(); }
public void SetUpSprite(string textureId, Vector2 pixelSize, Vector2 pixelCenter, Rect srcRect) { if (this.upRenderObject == null) { this.upRenderObject = new Roga2dRenderObject(textureId, pixelSize, pixelCenter, srcRect); this.upRenderObject.Pop(); this.upRenderObject.Transform.parent = this.Transform; this.upRenderObject.Hide(); UpdateState(); } }
public static void TestAddRemove() { Roga2dNode node = new Roga2dNode(); Roga2dRenderObject renderObject = new Roga2dRenderObject(null, new Vector2(64, 64), new Vector2(32, 16), new Rect(0, 0, 1, 1)); Roga2dSprite sprite = new Roga2dSprite(renderObject); Tester.Match(node.ChildrenCount, 0); node.AddChild(sprite); Tester.Match(node.ChildrenCount, 1); node.Update(); node.RemoveAllChildren(); Tester.Match(node.ChildrenCount, 0); node.Destroy(); }
public static void TestPositionType() { Roga2dRenderObject renderObject = new Roga2dRenderObject(null, new Vector2(30, 50), new Vector2(-5, 5), new Rect(5, 14, 25, 30)); Roga2dSprite sprite = new Roga2dSprite(renderObject); sprite.LocalPosition = new Vector2(0, 10); sprite.LocalScale = new Vector2(2, 3); Tester.Match(sprite.GetOffsetByPositionAnchor(-1, 1), new Vector2(-40, 15)); Tester.Match(sprite.GetOffsetByPositionAnchor(0, 1), new Vector2(-10, 15)); Tester.Match(sprite.GetOffsetByPositionAnchor(1, 1), new Vector2(20, 15)); Tester.Match(sprite.GetOffsetByPositionAnchor(-1, 0), new Vector2(-40, -60)); Tester.Match(sprite.GetOffsetByPositionAnchor(0, 0), new Vector2(-10, -60)); Tester.Match(sprite.GetOffsetByPositionAnchor(1, 0), new Vector2(20, -60)); Tester.Match(sprite.GetOffsetByPositionAnchor(-1, -1), new Vector2(-40, -135)); Tester.Match(sprite.GetOffsetByPositionAnchor(0, -1), new Vector2(-10, -135)); Tester.Match(sprite.GetOffsetByPositionAnchor(1, -1), new Vector2(20, -135)); sprite.Destroy(); }
public static void TestUpdate() { Roga2dRenderObject renderObject = new Roga2dRenderObject(null, new Vector2(32, 48), new Vector2(1, 1), new Rect(10, 10, 32, 48)); Roga2dSprite sprite = new Roga2dSprite(renderObject); List<Roga2dAnimationKeyFrame> keyFrames = new List<Roga2dAnimationKeyFrame>(); Roga2dAnimationKeyFrame keyFrame = new Roga2dAnimationKeyFrame(); keyFrame.FrameNo = 0; keyFrame.Rect = new Rect(10, 10, 32, 48); keyFrame.Id = "test"; keyFrame.Duration = 3; keyFrame.Type = Roga2dAnimationKeyFrameType.Image; keyFrame.PixelCenter = new Vector2(1, 1); keyFrames.Add(keyFrame); keyFrame = new Roga2dAnimationKeyFrame(); keyFrame.FrameNo = 3; keyFrame.Rect = new Rect(20, 10, 22, 48); keyFrame.Id = "test2"; keyFrame.Duration = 2; keyFrame.Type = Roga2dAnimationKeyFrameType.Image; keyFrame.PixelCenter = new Vector2(2, 2); keyFrames.Add(keyFrame); keyFrame = new Roga2dAnimationKeyFrame(); keyFrame.FrameNo = 5; keyFrame.Rect = new Rect(20, 10, 22, 48); keyFrame.Id = "test3"; keyFrame.Duration = 1; keyFrame.Type = Roga2dAnimationKeyFrameType.Image; keyFrame.PixelCenter = new Vector2(3, 3); keyFrames.Add(keyFrame); keyFrame = new Roga2dAnimationKeyFrame(); keyFrame.FrameNo = 6; keyFrame.Rect = new Rect(20, 10, 22, 48); keyFrame.Id = "test4"; keyFrame.Duration = 2; keyFrame.Type = Roga2dAnimationKeyFrameType.Image; keyFrame.PixelCenter = new Vector2(4, 4); keyFrames.Add(keyFrame); Roga2dSourceInterval interval = new Roga2dSourceInterval(sprite, keyFrames, null, null); interval.Start(); Tester.Match(sprite.RenderObject.SrcRect, new Rect(10, 10, 32, 48)); Tester.Match(sprite.RenderObject.PixelCenter, new Vector2(1, 1)); Tester.Ok(!interval.IsDone()); interval.Update(); Tester.Match(sprite.RenderObject.SrcRect, new Rect(10, 10, 32, 48)); Tester.Match(sprite.RenderObject.PixelCenter, new Vector2(1, 1)); Tester.Ok(!interval.IsDone()); interval.Update(); Tester.Match(sprite.RenderObject.SrcRect, new Rect(10, 10, 32, 48)); Tester.Match(sprite.RenderObject.PixelCenter, new Vector2(1, 1)); Tester.Ok(!interval.IsDone()); interval.Update(); Tester.Match(sprite.RenderObject.SrcRect, new Rect(10, 10, 32, 48)); Tester.Match(sprite.RenderObject.PixelCenter, new Vector2(1, 1)); Tester.Ok(!interval.IsDone()); interval.Update(); Tester.Match(sprite.RenderObject.SrcRect, new Rect(20, 10, 22, 48)); Tester.Match(sprite.RenderObject.PixelCenter, new Vector2(2, 2)); Tester.Ok(!interval.IsDone()); interval.Update(); Tester.Match(sprite.RenderObject.SrcRect, new Rect(20, 10, 22, 48)); Tester.Match(sprite.RenderObject.PixelCenter, new Vector2(2, 2)); Tester.Ok(!interval.IsDone()); interval.Update(); Tester.Match(sprite.RenderObject.SrcRect, new Rect(20, 10, 22, 48)); Tester.Match(sprite.RenderObject.PixelCenter, new Vector2(3, 3)); Tester.Ok(!interval.IsDone()); interval.Update(); Tester.Match(sprite.RenderObject.SrcRect, new Rect(20, 10, 22, 48)); Tester.Match(sprite.RenderObject.PixelCenter, new Vector2(4, 4)); Tester.Ok(!interval.IsDone()); interval.Update(); Tester.Match(sprite.RenderObject.SrcRect, new Rect(20, 10, 22, 48)); Tester.Match(sprite.RenderObject.PixelCenter, new Vector2(4, 4)); Tester.Ok(interval.IsDone()); interval.Update(); sprite.Destroy(); }
public Roga2dSprite(Roga2dRenderObject renderObject) : base("Sprite") { this.RenderObject = renderObject; }