解决方法
因此,为了只显示图像,纹理,精灵的一半,有人需要使用SKCropNode.唯一明智的做法是从一半开始裁剪你需要的精灵,而不仅仅是用预定义的尺寸进行裁剪.这可以通过设置掩模节点位置来实现.
1)使用该纹理/图像创建一个SkSpriteNode:
// Obj-C SKSpriteNode *skelet = [SKSpriteNode spriteNodeWithImageNamed:imageName]; // Swift let skelet = SKSpriteNode(imageNamed: imageName)
2)创建SKCropNode:
// Obj-C SKCropNode * cropNode = [SKCropNode node]; // Swift let cropNode = SKCropNode()
3)创建面具
// Obj-C SKSpriteNode *mask = [SKSpriteNode spriteNodeWithColor:[UIColor blackColor] size:CGSizeMake(skelet.frame.size.width/2,skelet.frame.size.height)]; // Swift let mask = SKSpriteNode(color: .black,size: CGSize(width: skelet.frame.size.width/2,height: skelet.frame.size.height))
**将面具位置设置为您需要的结果的一半(您需要一半的骨架 – >将面具位置设置为骨架的一半的一半“)
// Obj-C mask.position = CGPointMake(skelet.frame.size.width/4,0); // Swift mask.position = CGPoint(x: skelet.frame.size.width/4,y: 0)
除以4是因为您需要遮罩的中心不在骨架节点的中心,而是移动到骨架的一半半(提醒遮罩节点使用默认锚点0.5 0.5 – 所以零点对应于骨架节点的中心).
4)将所需元素添加到裁剪节点
// Obj-C [cropNode addChild:skelet]; [cropNode setMaskNode:mask]; [self addChild:cropNode]; // Swift cropNode.addChild(skelet) cropNode.maskNode = mask self.addChild(cropNode)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。