Changing the image of a SKSprite to an SKShapeNode

前端 未结 2 1152
粉色の甜心
粉色の甜心 2021-01-21 19:00

Sprite Kit, Xcode.

I need to find a way to change a sprites image within the program itself. I know how to create jpg files and make them into the sprite image...

<
相关标签:
2条回答
  • 2021-01-21 19:15

    If I understand your question correctly, you can achieve what you're after using the textureFromNode method on SKView.

    In your 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];
    }
    

    Hope that helps!

    0 讨论(0)
  • 2021-01-21 19:20

    You cannot change a SKSpriteNode image once you assign it. To do what you want, you need to create a SKSpriteNode using a texture.

    - (instancetype)initWithTexture:(SKTexture *)texture
    

    To change a SKSpriteNode's texture you assign a new texture using its texture property. You can also do this using an image converted to a texture like this:

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

    As for a SKShapeNode, you cannot assign an image. Only a path, rect, circle, ellipse or points. Look at the SKShapeNode class docs section Creating a Shape Path for more info.

    0 讨论(0)
提交回复
热议问题