objective-c - 如何比较 SKSpriteNode 纹理

标签 objective-c ios7 sprite-kit skspritenode sktexture

我正在使用 Sprite Kit 制作游戏。当发生碰撞时,我想检索我的弹丸与之碰撞的 SKSpriteNode 的图像,以根据怪物的图像分配不同的点值。我认为比较 SKSpriteNode 的纹理属性可以工作。我尝试了以下代码,但从未调用过我的 if 语句。有什么建议吗?

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

最佳答案

是的,有一种方法可以使用 UIImage 比较两个图像/纹理。

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

    return [data1 isEqual:data2];
}

关于objective-c - 如何比较 SKSpriteNode 纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23201190/

相关文章:

swift - 圆形特定角 - SKShapeNode

ios - 在启动时暂停 SKScene

ios - 有没有办法只在接收者的应用程序处于事件状态时发送远程通知?

ios - 使用 iOS 工具启动应用程序不可靠

ios - 当没有替代方法时,禁止使用该方法的警告

objective-c - NSRunloop runUntilDate导致应用崩溃

iOS 7 Dev - @synthesize 不自动创建 ivars

ios - Swift:将处理程序从单击切换到双击会导致 EXC_BAD_ACCESS 异常

ios - xcode - 从 TableView 中删除一行

objective-c - 如何在iOS中存储GPS坐标?