2012-02-22 16 views
1

2つの衝突するスプライトが同じ色を持つかどうかを確認する必要があるゲーム(Cocos2d + Obj-C)を作成しています。Cocos2d - 2つのccColor3B構造体の色を比較します。

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

しかし、私は時のエラーコンパイル取得:私はすでに、次のことを試してみた「バイナリexpresson( 『ccColor3B』(別名 『構造体_ccColor3B』)と 『ccColor3B』)に無効なオペランドを」 2つの色をテストする方法は何ですか?ありがとう。

答えて

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 - いくつかのテストとmemcmpは、float(またはGLFloat)を含む構造体を比較すると思ったように動作しませんでしたか?オプションではないようです。 –

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

関連する問題