首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SKCropNode被裁剪为SKSpriteNode

SKCropNode被裁剪为SKSpriteNode
EN

Stack Overflow用户
提问于 2013-12-24 17:12:23
回答 1查看 2.8K关注 0票数 1

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

以下是我的代码

代码语言:javascript
复制
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];

下面是图片和结果:

提前感谢

EN

回答 1

Stack Overflow用户

发布于 2013-12-27 07:56:15

据我所知,您正在尝试获得裁剪的部分作为SKSpriteNode,如果是这样的话,您可以按如下方式进行管理:

代码语言:javascript
复制
    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)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20758033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档