1

我对 SKCropNode 应用了一个蒙版,我现在看到了我需要的东西,但是裁剪的节点具有完整图像的大小我只想访问裁剪的部分而不是完整的图像我可以将它放入 SKSpriteNode 吗?

这是我的代码

SKSpriteNode *pic = [SKSpriteNode spriteNodeWithImageNamed:@"test.png"];
pic.name = @"PictureNode";
SKSpriteNode *mask = [SKSpriteNode spriteNodeWithImageNamed:@"2.png"];
mask.size=CGSizeMake(50, 50);
mask.position=CGPointMake(0, 50);
SKCropNode *cropNode = [SKCropNode node];
cropNode.position=CGPointMake(160, 70);
[cropNode addChild:pic];
[cropNode setMaskNode:mask];
[self addChild:cropNode];

这是图像和结果:

蒙版图片

图片

结果

提前致谢

4

1 回答 1

2

据我了解,您正在尝试将裁剪部分作为 SKSpriteNode,如果是这种情况,您可以按如下方式进行管理:

    SKTexture *oldWholeTexture = [self.scene.view textureFromNode:cropNode];
    SKTexture *newTexture = [SKTexture textureWithRect:CGRectMake(140.f/364.f,56.f/365.f,80.f/364.f,125.f/365.f) inTexture: oldWholeTexture];
    SKSpriteNode *newNode = [SKSpriteNode spriteNodeWithTexture:newTexture];

textureWithRect 的 CGRect 参数采用单位值,因此我根据纹理大小对值进行了归一化。左下角是 (0,0)。

于 2013-12-26T23:56:15.243 回答