C# 如何在Farseer中创建多边形?
当我想在Farseer中创建多边形时,总是会收到许多错误消息 “FarsePerPhysics.Common.Vertexs”不包含的定义 “CreatePolygon”“FarsePerphysics.Factorys.BodyFactory”没有 包含“实例”的定义“physicsSimulator”的名称 当前上下文中不存在名称“triangleGeomtry”不存在 在当前上下文中存在名称“GeomFactory”在当前上下文中不存在 名称为“physicsSimulator”的当前上下文在中不存在 当前上下文 怎么了? 如何在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”的当前上下
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包含了一些工具,如果你想这样做的话,这些工具会给你基于精灵的“顶点”对象
“纹理到多边形”部分介绍了如何进行此操作。什么是物理模拟器和三角几何?您需要首先定义它们