2014-04-21 48 views
2

我正在用Sprite Kit製作遊戲。當發生碰撞時,我想要檢索我的彈丸碰撞的SKSpriteNode圖像,根據怪物的圖像分配不同的點值。我認爲比較SKSpriteNode的紋理屬性可能會起作用。我已經嘗試了下面的代碼,但是我的if語句永遠不會被調用。有什麼建議麼?如何比較SKSpriteNode紋理

- (void)projectile:(SKSpriteNode *)projectile didCollideWithMonster:(SKSpriteNode *)monster { 
     SKTexture *tex = [SKTexture textureWithImageNamed:@"img.png"]; 
     if ([[monster texture] isEqual:tex]) 
     { 
      NSLog(@"it works"); 
     } 
} 
+0

爲什麼不使用userData屬性或name屬性? – AndrewShmig

+0

我特別想要名爲「怪物」的SKSpriteNode的圖像 –

+0

爲什麼不用不同的名字命名不同的怪物呢?我認爲比較兩幅圖像/紋理是非常耗時的。 – AndrewShmig

回答

2

是的,有一種方法可以使用UIImage比較兩個圖像/紋理。

- (BOOL)image:(UIImage *)image1 isEqualTo:(UIImage *)image2 
{ 
    NSData *data1 = UIImagePNGRepresentation(image1); 
    NSData *data2 = UIImagePNGRepresentation(image2); 

    return [data1 isEqual:data2]; 
} 
+0

Парень,этотыпереводилкнигупроCoreDataнаХабре? Респекттебеогромныйзатвойтруд! :)Какразсейчасчитаю –

+1

@AndreyGordeev,я:)незакончилправда,нопланируюзакончить,кактолькоучебузавершу。 – AndrewShmig