2013-12-21 85 views
0

我一直在用C++使用SFML三個月,最近決定轉換到C#。我在我的項目中引用了dll,將CSFML dll添加到我的項目中,並將使用語句添加到我的代碼頂部。但是,我在行後發現下面的錯誤:SFML.NET丟失的組件/指令引用

shape.setFillColor(fillColor); 

我的問題是什麼?

Error: error CS1061: 'SFML.Graphics.CircleShape' does not contain a definition for 'setFillColor' and no extension method 'setFillColor' accepting a first argument of type 'SFML.Graphics.CircleShape' could be found (are you missing a using directive or an assembly reference?)

代碼:http://pastie.org/private/eujxnxorisb4ajtp22ovng

+0

如果它是一個包含C#習語的端口,那麼'x.setFillColor(... )'可以是'x.FillColor = ...'智能感知說什麼? –

+0

我編輯了你的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –

回答

2

展望代碼SFML.NET代碼,從ShapeCircleShape繼承它有這種方法包裝成屬性:

// SFML.Graphics.Shape 
public Color FillColor 
{ 
    get 
    { 
     return Shape.sfShape_getFillColor(base.CPointer); 
    } 
    set 
    { 
     Shape.sfShape_setFillColor(base.CPointer, value); 
    } 
} 

,所以你可以簡單地調用:

shape.FillColor = ... 
+0

改變代碼後說shape.FillColor(fillColor);有錯誤CS1955:不可調用的成員SFML.Graphics.Shape.FillColor'不能像方法一樣使用。 – user1998492

+0

它是一個屬性,shape.FillColor = fillColor; –