稍微停留在如何绘制/绘制像alpha Chanel这样的效果到SKSpriteNode节点上的一点点我已经开始设置我需要的两个图像(ps如果有另一种方法可以做到这一点是精灵-kit id喜欢知道如何画面具
1)The hidden picture - SKSpriteNode *hiddenimageNode
2)The overlay that gets scratched away SKSpriteNode *myOverlay
3)最后是一个包含
的掩码节点UIImage *image;
SKTexture *maskTexture= [SKTexture textureWithImage:image];
maskNode = [SKSpriteNode spriteNodeWithTexture:maskTexture];
所有这些都被放置在一个节点" cropNode" [SKCropNode节点]; 这更像是静态图像(在触摸位置移动的圆形图像,而不是我之后的图像,我希望能够划掉整个图像)
这种方法很好,但它不是我在
之后的样子图片:将手指从pos1拖到pos02,而"擦除紫色图层以显示笑脸"
有没有办法让它看起来像我擦除精灵? nubie编码器
//更新项目... 所以从那以后我尝试使用这段代码 https://github.com/oyiptong/CGScratch
并通过创建子视图然后将UIView(Scratchview放入其中)将其添加到我的SkScene中,擦除工作正在进行,但是擦除不会发生在触摸发生的地方,任何想法为什么会发生这种情况?
答案 0 :(得分:1)
如果你在iOS 8中这样做,那么你最好的办法是只使用SKSpriteNodes作为你的掩蔽节点,其他类型的节点有一个奇怪的错误导致失真。
如果您使用iOS9 +进行此操作,则修复SKShapeNodes。
我将解释iOS 9的概念。要在iOS 8中使用它是一个真正的痛苦,因为减法不会在iOS 8中减去alpha。
现在,对于您的蒙版节点,您只能有两个绘图选项,即基于蒙版图像中像素的alpha级别的On和Off。所以你想要做的是结合减法alpha混合来创造你想要的效果。
let bigcircle = SKShapeNode(circleOfRadius: 80)
bigcircle = .whiteColor()
let littlecircle = SKShapeNode(circleOfRadius: 40)
littlecircle.position = CGPoint(x: 10, y: 10)
littlecircle.fillColor = .whiteColor()
littlecircle.blendMode = .Subtract
bigcircle.addChild(littlecircle)
maskNode = bigcircle
这段代码正在做的是制作一个半径为80点的大白圈,并在其内部绘制一个40点的白色圆圈。由于我们使用减法混合,它将采用新颜色并从旧颜色中减去它(在我们的例子中是白色(1,1,1,1) - 白色(1,1,1,10 =透明(0, 0,0,0))并在我们的面具中找到一个漂亮的洞,最终会在你的笑脸上被裁剪出来。