public override void LoadContent()
        {
            base.LoadContent();

            World.Gravity = Vector2.Zero;

            _border = new Border(World, Lines, Framework.GraphicsDevice);
            for (int i = 0; i < 3; i++)
            {
                VerticesContainer  verticesContainer = Framework.Content.Load <VerticesContainer>("Pipeline/BreakableBody");
                List <VerticesExt> def = verticesContainer["Cookie"];
                _breakableCookie[i]                   = CreateBreakable(def);
                _breakableCookie[i].Strength          = 120f;
                _breakableCookie[i].MainBody.Position = new Vector2(-20.33f + 15f * i, -5.33f);
            }

            _breakableSprite = new List <Sprite>();
            List <Texture2D> textures = ContentWrapper.BreakableTextureFragments(_breakableCookie[0], "Cookie");

            for (int i = 0; i < _breakableCookie[0].Parts.Count; i++)
            {
                AABB      bounds;
                Transform transform;
                _breakableCookie[0].Parts[i].Body.GetTransform(out transform);
                _breakableCookie[0].Parts[i].Shape.ComputeAABB(ref transform, 0, out bounds);
                Vector2 origin = ConvertUnits.ToDisplayUnits(_breakableCookie[0].Parts[i].Body.Position - bounds.LowerBound);
                _breakableSprite.Add(new Sprite(textures[i], origin));
            }
            _completeSprite = new Sprite(ContentWrapper.GetTexture("Cookie"), Vector2.Zero);
        }
        public override void LoadContent()
        {
            base.LoadContent();

            World.Gravity = new Vector2(0f, 10f);

            _loadedVertices = Framework.Content.Load <VerticesContainer>("Pipeline/Body");

            _heartBody = Create(_loadedVertices["Heart"]);
            _heart     = new Sprite(Managers.TextureManager.GetTexture("Heart"), Managers.TextureManager.CalculateOrigin(_heartBody));

            _clubBody = Create(_loadedVertices["Club"]);
            _club     = new Sprite(Managers.TextureManager.GetTexture("Club"), Managers.TextureManager.CalculateOrigin(_clubBody));

            _spadeBody = Create(_loadedVertices["Spade"]);
            _spade     = new Sprite(Managers.TextureManager.GetTexture("Spade"), Managers.TextureManager.CalculateOrigin(_spadeBody));

            _diamondBody = Create(_loadedVertices["Diamond"]);
            _diamond     = new Sprite(Managers.TextureManager.GetTexture("Diamond"), Managers.TextureManager.CalculateOrigin(_diamondBody));
        }
示例#3
0
        public override void LoadContent()
        {
            base.LoadContent();

            World.Gravity = Vector2.Zero;

            for (int i = 0; i < 3; i++)
            {
                VerticesContainer  verticesContainer = Framework.Content.Load <VerticesContainer>("Pipeline/BreakableBody");
                List <VerticesExt> def = verticesContainer["Cookie"];
                _breakableCookie[i]                   = CreateBreakable(def);
                _breakableCookie[i].Strength          = 120f;
                _breakableCookie[i].MainBody.Position = new Vector2(-20.33f + 15f * i, -5.33f);
            }

            _breakableSprite = new List <Sprite>();
            IList <Texture2D> textures = Managers.TextureManager.BreakableTextureFragments(_breakableCookie[0], "Cookie");

            for (int i = 0; i < _breakableCookie[0].Parts.Count; i++)
            {
                _breakableCookie[0].Parts[i].Body.GetTransform(out Transform transform);
                _breakableCookie[0].Parts[i].Shape.ComputeAABB(ref transform, 0, out AABB bounds);
        public override VerticesContainer Process(List <PathDefinition> input, ContentProcessorContext context)
        {
            if (ScaleFactor < 1)
            {
                throw new Exception("Pixel to meter ratio must be greater than zero.");
            }

            if (BezierIterations < 1)
            {
                throw new Exception("Cubic bézier iterations must be greater than zero.");
            }

            Matrix            matScale  = Matrix.CreateScale(_scaleFactor, _scaleFactor, 1f);
            SVGPathParser     parser    = new SVGPathParser(BezierIterations);
            VerticesContainer container = new VerticesContainer();

            foreach (PathDefinition d in input)
            {
                List <VerticesExt> vertices = parser.ParseSVGPath(d.Path, d.Transformation * matScale);
                List <VerticesExt> c        = container.ContainsKey(d.Id) ? container[d.Id] : (container[d.Id] = new List <VerticesExt>());

                if (vertices.Count == 1)
                {
                    c.Add(vertices[0]);
                }
                else
                {
                    for (int i = 0; i < vertices.Count; i++)
                    {
                        c.Add(vertices[i]);
                    }
                }
            }

            return(container);
        }