使用图案图像填充SKShapeNode

Hél*_*res 3 ios7 sprite-kit skshapenode

我正在尝试使用图像/模式填充SKShapeNode,但我仍然没有成功.

你能帮我解决这个问题还是给我一个替代方案?我想创建一个填充图案图像的可碰撞自定义形状(来自任何SpriteKit类型).

我尝试过以下方法:

UIBezierPath *path = [[UIBezierPath alloc] init];
    [path addArcWithCenter:CGPointMake(0.0, 0.0) radius:50.0 startAngle:0.0 endAngle:(M_PI*2.0) clockwise:YES];
SKShapeNode *shape = [[SKShapeNode alloc] init];
UIImage *patternImg = [UIImage imageNamed:@"pattern"];
shape.path = path.CGPath;
shape.fillColor = [[SKColor alloc] initWithCGColor:[[UIColor alloc] initWithPatternImage:patternImg].CGColor];
Run Code Online (Sandbox Code Playgroud)

并且:

shape.fillColor = [[SKColor alloc] initWithPatternImage:[[UIImage alloc] initWithCGImage:[UIImage imageNamed:@"Basketball"].CGImage]];
Run Code Online (Sandbox Code Playgroud)

这有效(但它不是我正在寻找的):

shape.fillColor =  [SKColor redColor];
Run Code Online (Sandbox Code Playgroud)

谢谢!

Dmi*_*kov 5

从iOS 8.0开始,fillTextureSKShapeNode中有属性.


die*_*men 3

我在游戏中遇到了示例问题,最后我的解决方案是添加一个 SKSpriteNode 作为 SKShapeNode 的子节点,并且工作正常。

SKSpriteNode* node = [[SKSpriteNode alloc] initWithImageNamed:@"bombIcon.png"];
node.name = @"bomb";
node.size = CGSizeMake(10, 10);
[self.bombNode addChild:node];
Run Code Online (Sandbox Code Playgroud)

其中 self.bombNode 是 SKShapeNode。

希望能帮助到你