使用Farseer文档的困难

时间:2013-05-20 15:18:58

标签: c# xna game-physics farseer

我在Farseer文档中尝试了“Texture to polygon”示例。 https://farseerphysics.codeplex.com/documentation 但我总是在以下行中收到此错误消息:

//Find the vertices that makes up the outline of the shape in the texture
Vertices  verts = PolygonTools.CreatePolygon(data, polygonTexture.Width, polygonTexture.Height, true);

No overload for method 'CreatePolygon' takes 4 arguments    

Farseer文档中是否有错误或出了什么问题? 我应该在这一行改变什么?

另外,我在以下几行中收到这两条错误消息:

_list = BayazitDecomposer.ConvexPartition(verts);
List<Fixture> compund = FixtureFactory.CreateCompoundPolygon(World, _list, 1);

The name 'BayazitDecomposer' does not exist in the current context  
'FarseerPhysics.Factories.FixtureFactory' does not contain a definition for 'CreateCompoundPolygon' 

有什么问题?

我的代码中有以下三种用法:

using FarseerPhysics.Dynamics;
using FarseerPhysics.Factories;
using FarseerPhysics.Common;

我应该添加另一个吗?

2 个答案:

答案 0 :(得分:3)

我认为所有问题都可以归结为不包括正确的库。我承认,你链接的FarseerPhysics文档不是很有帮助。您可以在自己的源代码中看到,BayazitDecomposerFarseerPhysics.Common.Decomposition命名空间的一部分,因此您可以通过说

来引用它
using FarseerPhysics.Common.Decomposition;

位于顶部,或只是using FarseerPhysics.Common;和代码:

Decomposition.BayazitDecomposer() //etc.

我建议您查看其他开发人员的示例代码,或者深入了解FarseerPhysics的来源,以了解您缺少的其他库。

我在CreatePolygon案例中也注意到,根据我所查看的BodyFactory定义,该方法甚至没有返回您认为它的Vertices类型。因此,在这种情况下,您不仅可能缺少所需的库,而且当您包含它时,它会说返回类型是错误的。

考虑到这些问题,也许提出您所使用的示例代码基于较旧版本的Farseer的评论者是正确的。

答案 1 :(得分:1)

下载文件Farseer Physics Engine 3.3.1 Samples XNA时!高级演示1有一个&#34;纹理到多边形&#34;

这个过时的页面文档。