C# 如何在Farseer中创建多边形?

C# 如何在Farseer中创建多边形?,c#,xna,game-physics,farseer,C#,Xna,Game Physics,Farseer,当我想在Farseer中创建多边形时,总是会收到许多错误消息 “FarsePerPhysics.Common.Vertexs”不包含的定义 “CreatePolygon”“FarsePerphysics.Factorys.BodyFactory”没有 包含“实例”的定义“physicsSimulator”的名称 当前上下文中不存在名称“triangleGeomtry”不存在 在当前上下文中存在名称“GeomFactory”在当前上下文中不存在 名称为“physicsSimulator”的当前上下

当我想在Farseer中创建多边形时,总是会收到许多错误消息

“FarsePerPhysics.Common.Vertexs”不包含的定义 “CreatePolygon”“FarsePerphysics.Factorys.BodyFactory”没有 包含“实例”的定义“physicsSimulator”的名称 当前上下文中不存在名称“triangleGeomtry”不存在 在当前上下文中存在名称“GeomFactory”在当前上下文中不存在 名称为“physicsSimulator”的当前上下文在中不存在 当前上下文

怎么了? 如何在Farseer中创建多边形

        triangleSprite = Content.Load<Texture2D>("triangle"); // Load the Sprite
        data = new uint[triangleSprite.Width * triangleSprite.Height]; 
        triangleSprite.GetData(data);
        verts = Vertices.CreatePolygon(data, triangleSprite.Width, triangleSprite.Height); 
        polygonOrigin = verts.GetCentroid(); 
        triangleBody = BodyFactory.Instance.CreatePolygonBody(physicsSimulator, verts, 3);
        triangleBody.Position = new Vector2(400, 600);
        triangleGeomtry = GeomFactory.Instance.CreatePolygonGeom(physicsSimulator, triangleBody, verts, 0);
triangleSprite=Content.Load(“三角形”);//装雪碧
数据=新uint[triangleSprite.Width*triangleSprite.Height];
triangleSprite.GetData(数据);
verts=顶点.CreatePolygon(数据,triangleSprite.Width,triangleSprite.Height);
polygonOrigin=verts.GetCentroid();
TriangalBody=BodyFactory.Instance.CreatePolygonBody(physicsSimulator,verts,3);
三角形体。位置=新矢量2(400600);
triangleGeomtry=GeomFactory.Instance.CreatePolygonGeom(physicsSimulator,triangleBody,verts,0);

我是这样做的。。使用XNA 4和Farseer 3.3.1

        //List of vectors defining my custom poly
        Vector2[] vlist = 
            {
                ConvertUnits.ToSimUnits(new Vector2(25,0)) 
                ,ConvertUnits.ToSimUnits(new Vector2(15,25)) 
                ,ConvertUnits.ToSimUnits(new Vector2(-15,25)) 
                ,ConvertUnits.ToSimUnits(new Vector2(-25,0))
                ,ConvertUnits.ToSimUnits(new Vector2(-15,-10))
                ,ConvertUnits.ToSimUnits(new Vector2(15,-10))
            };

        //get farseer 'vertices' from vectors
        Vertices _shapevertices = new Vertices(vlist);

        //feed vertices array to BodyFactory.CreatePolygon to get a new farseer polygonal body
        _newBody = BodyFactory.CreatePolygon(_world, _shapevertices, _stats.Density);
我自己定义形状,但我知道farseer包含了一些工具,如果你想这样做的话,这些工具会给你基于精灵的“顶点”对象


“纹理到多边形”部分介绍了如何进行此操作。

什么是物理模拟器和三角几何?您需要首先定义它们