【问题标题】:Sprite kit (objective c) check texture of sprite nodeSprite kit (objective c) 检查精灵节点的纹理
【发布时间】:2015-03-21 10:49:44
【问题描述】:

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

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

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



}

请帮忙

【问题讨论】:

  • 您将SKTextureNSString 进行比较。

标签: objective-c sprite-kit skspritenode sknode


【解决方案1】:

要比较 SKTextures,请查看此answer

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

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

之后,只是比较名字

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

    • 这可能行不通。一个单独的纹理实例,即使从同一图像派生,也不会使用该方法返回相等。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    相关资源
    最近更新 更多