2

雪碧套件,Xcode。

我需要找到一种方法来更改程序本身内的精灵图像。我知道如何创建 jpg 文件并将它们制作成精灵图像......

但是对于这个程序,我需要使用 SKShapeNode 绘制圆/多边形(可能在程序内部发生变化),然后将其传输到 SKSpriteNode 的图像。

假设我已经宣布:

SKSpriteNode *sprite;
SKShapeNode *image;

我将如何使用这些变量来做到这一点?

谢谢!

编辑:当我说图像时,我的意思是纹理。

4

2 回答 2

3

如果我正确理解您的问题,您可以在textureFromNode使用SKView.

在你的SKScene

-(void)didMoveToView:(SKView *)view {
    SKShapeNode *shape = [SKShapeNode shapeNodeWithCircleOfRadius:100];
    shape.fillColor = [UIColor blueColor];
    shape.position  = CGPointMake(self.size.width * 0.25, self.size.height * 0.5);
    [self addChild:shape];

    SKTexture *shapeTexture = [view textureFromNode:shape];
    SKSpriteNode* sprite = [SKSpriteNode spriteNodeWithTexture: shapeTexture];
    sprite.position = CGPointMake(self.size.width * 0.75, self.size.height * 0.5);
    [self addChild:sprite];
}

希望有帮助!

于 2015-05-13T21:09:35.563 回答
0

分配 SKSpriteNode 图像后,您将无法更改它。要做你想做的事,你需要使用纹理创建一个 SKSpriteNode。

- (instancetype)initWithTexture:(SKTexture *)texture

要更改 SKSpriteNode 的纹理,您可以使用其纹理属性分配一个新纹理。您也可以使用转换为纹理的图像来执行此操作,如下所示:

myNode.texture = [SKTexture textureWithImageNamed:@"imageName"];

对于 SKShapeNode,您无法分配图像。只有路径、矩形、圆、椭圆或点。查看 SKShapeNode 类文档部分创建形状路径以获取更多信息。

于 2015-05-13T20:05:13.640 回答