Ejemplo n.º 1
0
    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();
    }
Ejemplo n.º 4
0
 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();
     }
 }
Ejemplo n.º 5
0
    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();
    }
Ejemplo n.º 6
0
    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();
    }
Ejemplo n.º 8
0
 public Roga2dSprite(Roga2dRenderObject renderObject)
     : base("Sprite")
 {
     this.RenderObject = renderObject;
 }