2014-04-25 3 views
0

SFML.net에서 두 가지 색상을 비교해야합니다. C++에서는 연산자가 ==으로 정의되어 있기 때문에 가능합니다. SFML.net에서 Visual Studio는 코드를 컴파일하지 못하게합니다. 어떻게 해결할 수 있습니까? 오류 : 1>E:\DB\Dropbox\Repozytoria\ARDSQL GUI\Sources\StatusBar.cs(91,17,91,70): error CS0019: Operator '==' cannot be applied to operands of type 'SFML.Graphics.Color' and 'SFML.Graphics.Color' 두 개의 SFML 색상을 비교할 수 없습니다.

내 코드 :

if (base.barRectangle.FillColor == Color.Green) 
{ 
    ///Do something... 
} 
+0

'색상. 녹색'이란 무엇입니까? 'System.Drawing.Color'? –

+0

SFML.Graphics.Color. 둘 다 SFML.Graphics에서 왔습니다. –

답변

1

개별 구성 요소 비교하십시오 :

if (base.barRectangle.FillColor.r == Color.Green.r && 
    base.barRectangle.FillColor.g == Color.Green.g && 
    base.barRectangle.FillColor.b == Color.Green.b){ 
    ///Do something... 
} 

또는 당신이 당신의 자신의 컬러 비교 함수 작성을 시도 할 수 :

bool isEqualSFColors(SFML.Graphics.Color c1, SFML.Graphics.Color c2){ 
    if (c1.r == c2.r && 
     c1.g == c2.g && 
     c1.b == c2.b){ 
     return true; 
    } 
    return false; 
} 

나는 알파벳을 포함하지 않았다는 것을주의하십시오 a 비교 (yourColor.a는 어떻게 얻을 것인가)입니다. 그것은 당신이 당신이 발견 이전 버전/바이너리를 사용하고 있는지 수도 있습니다 http://msdn.microsoft.com/en-us/library/aa288467(v=vs.71).aspx

: 당신은 당신이 원하는 오버로드 연산자를 추가 부담 그래서

SFML는 오픈 소스이다. SFML.net을 사용하지는 않았지만 새로운 복사본을 얻는다면 이미이 기능이 내장되어있을 것입니다.

+0

감사합니다. –

관련 문제