我将一个面具应用于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];
以下是图片和结果:
提前致谢
答案 0 :(得分: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)。