Sprite kit (objective c) 检查精灵节点的纹理

Sprite kit (objective c) check texture of sprite node

我需要检查我的精灵节点纹理是否等于名称@"GoldDot"。 我试试代码

if ([red.texture isEqual:@"GoldDot"]) {

     NSLog(@"gold!!!!");
    }else{



}

请帮忙

为此,您最好测试一下您的纹理是否等于另一个纹理,而不是字符串。您可能想尝试的测试是,

if([red.texture isEqual:[SKTexture textureWithImageNamed:@"GoldDot.png"]]){
     NSLog(@"gold!!!");
else{
}

然后简单地给出您要查找的纹理的名称。

要比较 SKTextures,看看这个 answer

更简洁的替代方法是将 SKSpriteNode 的名称设置为您正在设置的图像。

NSString *textureName = @"GoldDot";
SKSpriteNode *node =[SKSpriteNode spriteNodeWithImageNamed: textureName];
node.name = textureName;

之后就比较名字了

if ([red.name isEqual:@"GoldDot"]) {
   NSLog(@"gold!!!!");
}