有没有一种方法可以使SKSpriteNode圆角化?我正在尝试用填充颜色的SKSpriteNode创建一个Tile likesqaure块:

SKSpriteNode *tile = [SKSpriteNode spriteNodeWithColor:[UIColor colorWithRed:0.0/255.0
                                                                           green:128.0/255.0
                                                                            blue:255.0/255.0
                                                                           alpha:1.0] size:CGSizeMake(30, 30)];

如何使它圆角?

谢谢!

最佳答案

要获得一个圆角节点,您可以使用2种方法,每种方法都需要使用SKShapeNode。

第一种方法是使用SKShapeNode并将其路径设置为一个圆角矩形,如下所示:

SKShapeNode* tile = [SKShapeNode node];
[tile setPath:CGPathCreateWithRoundedRect(CGRectMake(-15, -15, 30, 30), 4, 4, nil)];
tile.strokeColor = tile.fillColor = [UIColor colorWithRed:0.0/255.0
                                                    green:128.0/255.0
                                                     blue:255.0/255.0
                                                    alpha:1.0];

另一个使用带有圆角矩形的sprite节点,crop节点和SKShapeNode作为裁剪节点蒙版:
SKSpriteNode *tile = [SKSpriteNode spriteNodeWithColor:[UIColor   colorWithRed:0.0/255.0
                                                                           green:128.0/255.0
                                                                            blue:255.0/255.0
                                                                           alpha:1.0] size:CGSizeMake(30, 30)];
SKCropNode* cropNode = [SKCropNode node];
SKShapeNode* mask = [SKShapeNode node];
[mask setPath:CGPathCreateWithRoundedRect(CGRectMake(-15, -15, 30, 30), 4, 4, nil)];
[mask setFillColor:[SKColor whiteColor]];
[cropNode setMaskNode:mask];
[cropNode addChild:tile];

如果您的瓷砖是一种纯色,我建议您采用第一种方法。

关于ios - SKSpriteNode-创建圆角节点?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21695305/

10-13 04:27