如何从SKSpriteNode获取图像名称?

时间:2014-03-29 16:57:57

标签: ios objective-c uiimage sprite-kit skspritenode

我想获得我在SKSpriteNode上使用的图像的名称。

这是我创建节点的方式:

SKSpriteNode *button = [SKSpriteNode spriteNodeWithImageNamed:@"img.png"];

通过触摸屏幕,我想在NSLog上获得此图像的名称。

UITouch *touch = [touches anyObject];
CGPoint loc = [touch locationInNode:self];
SKSpriteNode *node = (SKSpriteNode *)[self nodeAtPoint:loc];

通过触摸节点,我想获得NSLog信息,该SKSpriteNode使用名为img.png的图像。

我该如何解决这个问题?

提前致谢。

2 个答案:

答案 0 :(得分:6)

您无法直接访问图片名称。一种可能的解决方案是使用节点的name属性。

NSString *filename = @"img.png";
SKSpriteNode *button = [SKSpriteNode spriteNodeWithImageNamed:filename];
[button setName:filename];

通过简单地打印对象的描述,你就有了名字。

NSLog("Touched object %@", [node description]);

答案 1 :(得分:2)

我今天遇到了同样的问题并找到了一个确切的解决方案。如果您想访问SKSpriteNode的图像,请尝试:

NSLog(@"Texture: %@",[button texture]);