标签: skcropnode

如何在SKSpriteNodes中剪切随机孔

除了这里提出的问题:用SpriteKit在矩形中画一个洞?由于两者之间没有令人满意的答案,两者之间最显着的区别是这个问题需要缺少解决方法,特别是要求扭转SKCropNodes的功能.

由于孔的随机性,孔的数量以及孔要应用的物体的变化,上述问题可以解决的hacky方式的类型无法解决这个问题中的主要问题.

因此瑞士奶酪的例子如下:

想象一堆随机大小的矩形SKSpriteNodes,充满各种色调的奶酪色.

如何通过从每片奶酪中切出随机圆圈来制作瑞士奶酪?

如果SKCropNodes是圈子,他们只留下圆形的奶酪片而不是从奶酪块中切出孔.有没有办法反转SKCropNodes的行为,所以他们切换孔?

image-masking sprite-kit skspritenode skcropnode skshapenode

14
推荐指数
1
解决办法
605
查看次数

SKCropNode屏蔽边缘抗锯齿

我创建了一个圆形蒙版,并使用精灵工具包SKCropNode类为蒙版内的精灵设置动画.但是掩模的边缘看起来像素化.

有没有办法使用抗锯齿来平滑边缘?

objective-c antialiasing masking sprite-kit skcropnode

13
推荐指数
2
解决办法
1296
查看次数

是否可以在Sprite Kit中使用圆圈(SKShapeNode)作为遮罩?

我正在尝试在Sprite Kit项目中创建一个圆形蒙版.我像这样创建圆圈(将其定位在屏幕的中心):

SKCropNode *cropNode = [[SKCropNode alloc] init];

SKShapeNode *circleMask = [[SKShapeNode alloc ]init];
CGMutablePathRef circle = CGPathCreateMutable();
CGPathAddArc(circle, NULL, CGRectGetMidX(self.frame), CGRectGetMidY(self.frame), 50, 0, M_PI*2, YES);
circleMask.path = circle;
circleMask.lineWidth = 0;
circleMask.fillColor = [SKColor blueColor];
circleMask.name=@"circleMask";
Run Code Online (Sandbox Code Playgroud)

在代码中,我将其设置为以下掩码cropNode:

[cropNode setMaskNode:circleMask];
Run Code Online (Sandbox Code Playgroud)

... ...而不是显示在圆圈内的内容,掩码显示为正方形.

是否可以使用a SKShapeNode作为蒙版,还是需要使用图像?

iphone objective-c ios7 sprite-kit skcropnode

10
推荐指数
3
解决办法
1万
查看次数

当我在层次结构中添加额外的SKNode子项时,SKCropNode失败

更新:看起来iOS 10已修复此问题.我升级到Swift 3和Xcode 8,一切都按预期工作.


我现在已经遇到过这个问题了几次,我不知道它是否是SKCropNode中的一个错误,或者我只是在滥用它.也许有一些文件我不知道为什么会发生这种情况?


我有一个100x100矩形形状的裁剪节点作为蒙版.如果我在其中放置一个蓝色圆圈,它会被正确裁剪.

// Create a crope node with a small square.
let cropNode = SKCropNode()
let cropNodeMask = SKShapeNode(rect: CGRect(x: 0, y: 0, width: 100, height: 100))
cropNodeMask.fillColor = UIColor.whiteColor()
cropNode.maskNode = cropNodeMask
self.addChild(cropNode)

// Create a blue circle and put it in the crop node.
let blueCircle = SKShapeNode(circleOfRadius: 110)
blueCircle.fillColor = UIColor.blueColor()
blueCircle.strokeColor = UIColor.clearColor()
cropNode.addChild(blueCircle)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


现在,当我将同一个圆放在一个空的SKNode中并将该容器放在同一个裁剪节点内时,裁剪失败.

// Create a crope node with a small square.
let cropNode = SKCropNode()
let cropNodeMask = SKShapeNode(rect: …
Run Code Online (Sandbox Code Playgroud)

cocoa-touch ios sprite-kit skcropnode swift

5
推荐指数
1
解决办法
130
查看次数

在SpriteKit(SKCropNode)中为蒙版图像设置动画

我正在使用Sprite Kit来创建我的第一个iOS应用程序,而且我在看似非常基本的问题上磕磕绊绊.

我正在尝试为fillNodeSKCropNode(cropNode)的contents()设置动画.下面的代码设置SKScene就好了(我看到插图被正确掩盖,放在正确位置的背景图像上)......

SKSpriteNode *logoBG = [[SKSpriteNode alloc] initWithImageNamed:logoBackground];
logoBG.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame));
[self addChild:logoBG];

SKCropNode *cropNode = [[SKCropNode alloc] init];
cropNode.maskNode = [[SKSpriteNode alloc] initWithImageNamed:logoMask];
SKSpriteNode *fillNode = [[SKSpriteNode alloc] initWithImageNamed:logoImage];

[cropNode addChild:fillNode];
fillNode.position = CGPointMake(0,300);
cropNode.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame));
self.logoContent = cropNode;
[self addChild:self.logoContent];
Run Code Online (Sandbox Code Playgroud)

...但我无法访问蒙面图示以设置其位置的动画(我希望它从蒙版外面开始并滑入到位置):

CGRect screenBound = [[UIScreen mainScreen] bounds];
CGSize screenSize = screenBound.size;

SKAction *moveUp = [SKAction moveByX: 0 y: 100 duration: 5];
SKAction *moveSequence = [SKAction sequence:@[moveUp]];
[self.logoContent.target_illustration runAction: moveSequence completion:^{ …
Run Code Online (Sandbox Code Playgroud)

animation ios7 sprite-kit skcropnode

2
推荐指数
1
解决办法
5242
查看次数