我尝试使精灵的框架更小,但它只是拉伸图像.
是否有可能使用蒙版或其他东西才能只显示精灵/图像/纹理的一半?
解决方法 因此,为了只显示图像,纹理,精灵的一半,有人需要使用SKCropNode.唯一明智的做法是从一半开始裁剪你需要的精灵,而不仅仅是用预定义的尺寸进行裁剪.这可以通过设置掩模节点位置来实现.1)使用该纹理/图像创建一个SkSpriteNode:
// Obj-CSKSpriteNode *skelet = [SKSpriteNode spriteNodeWithImagenamed:imagename];// Swiftlet skelet = SKSpriteNode(imagenamed: imagename)
2)创建SKCropNode:
// Obj-CSKCropNode * cropNode = [SKCropNode node];// Swiftlet cropNode = SKCropNode()
3)创建面具
// Obj-CSKSpriteNode *mask = [SKSpriteNode spriteNodeWithcolor:[UIcolor blackcolor] size:CGSizeMake(skelet.frame.size.wIDth/2,skelet.frame.size.height)];// Swiftlet mask = SKSpriteNode(color: .black,size: CGSize(wIDth: skelet.frame.size.wIDth/2,height: skelet.frame.size.height))
**将面具位置设置为您需要的结果的一半(您需要一半的骨架 – >将面具位置设置为骨架的一半的一半“)
// Obj-Cmask.position = CGPointMake(skelet.frame.size.wIDth/4,0);// Swiftmask.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];// SwiftcropNode.addChild(skelet)cropNode.maskNode = maskself.addChild(cropNode)总结
以上是内存溢出为你收集整理的ios – Sprite kit – 如何显示精灵/纹理/图像的一半全部内容,希望文章能够帮你解决ios – Sprite kit – 如何显示精灵/纹理/图像的一半所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)