2012-02-22 2 views
1

충돌하는 두 개의 스프라이트가 같은 색인지 아닌지 확인해야하는 게임 (Cocos2d + Obj-C)에서 작업하고 있습니다. "('ccColor3B'(일명 '구조체 _ccColor3B')와 'ccColor3B')를 유효하지 않은 피연산자를 이진 expresson에."Cocos2d - 두 ccColor3B 구조체 색상 비교

 if (ship.imageSprite.color == base.imageSprite.color) 
     { 
      { 
       NSLog(@"matching colors"); 
      } 
     } 

하지만 시간이 오류를 컴파일 얻을 : 난 이미 다음을 시도했습니다 두 가지 색상을 테스트하는 방법은 무엇입니까? 감사.

답변

2

당신은 개별적으로 ccColor3B의 구성 요소를 테스트해야합니다 :

ccColor3B col1 = ship.imageSprite.color; 
ccColor3B col2 = base.imageSprite.color; 
if (col1.r == col2.r && col1.g == col2.g && col1.b == col2.b) 
{ 
    NSLog(@"matching colors"); 
} 
+0

일을 memcmp는 것인가? memcmp (col1, col2, sizeof (ccColor3B)); –

+1

수정 ... memcmp (& col1, & col2, sizeof (ccColor3B)); // 그냥 거기 던져. 지금은 시험 할 수 없습니다. –

+0

Ok - float (또는 GLFloat)가 포함 된 구조체를 비교할 때 생각했던 것처럼 일부 테스트와 memcmp가 작동하지 않습니까? 옵션이 아닙니다. –

6
-(BOOL)isccColor3B:(ccColor3B)color1 theSame:(ccColor3B)color2{ 
    if ((color1.r == color2.r) && (color1.g == color2.g) && (color1.b == color2.b)){ 
     return YES; 
    } else { 
     return NO; 
    } 
} 
+0

그게 내가 필요한거야! 고맙습니다 – Gormoruk