2

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

这就是我创建节点的方式:

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

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

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

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

我应该如何解决这个问题?

提前致谢。

4

2 回答 2

6

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

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

这样,您只需打印对象的描述即可获得名称。

NSLog("Touched object %@", [node description]);
于 2014-03-29T17:44:45.590 回答
2

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

NSLog(@"Texture: %@",[button texture]);
于 2014-04-21T06:27:26.087 回答