2013-05-20 94 views
0

我嘗試了Farseer文檔中的「Texture to polygon」示例。 https://farseerphysics.codeplex.com/documentation 但我總是在下面一行此錯誤消息:Farseer文檔的困難

//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  

有沒有搞錯的先知文檔或有什麼不好? 這條線應該改變什麼?

此外,我得到了如下的這兩個錯誤信息:

_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' 

有什麼不對?

我有以下三個usings在我的代碼:

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

如果我再添使用?

+0

你最近的兩個錯誤表明缺少對必要文件的引用。 – tnw

+0

你有沒有正確的使用頂部包含的FarseerPhysics庫? – jszigeti

+0

我不知道是否缺少使用。目前,我使用三個使用。我應該添加另一個使用? – Leo

回答

3

我認爲所有的問題都可以歸納爲不包括正確的庫。我承認,你鏈接的FarseerPhysics文檔不是很有幫助。您可以在自己的源代碼中看到,例如,BayazitDecomposerFarseerPhysics.Common.Decomposition命名空間的一部分,所以你會說要麼

using FarseerPhysics.Common.Decomposition; 

頂部,或者只是using FarseerPhysics.Common;並在代碼中引用它:

Decomposition.BayazitDecomposer() //etc. 

我建議您查看其他開發人員的示例代碼,或者進一步深入到FarseerPhysics的源代碼中,以查看您缺少的其他庫。

我注意到在你的CreatePolygon的情況下,根據我所看到的BodyFactory定義,該方法甚至不會返回你認爲它確實有效的Vertices類型。所以在這種情況下,你不僅可能錯過了你需要的庫,而且當你包含它時,它會說返回類型是錯誤的。

也許提出這樣的問題的評論者建議您使用的示例代碼基於舊版本的Farseer是正確的。