我可以使用简单的 SKSpriteNode 绘制矩形。但我无法在其中绘制其他类型的图纸,例如具有两种分色的三角形、圆形等。有人建议使用 CGPath。但我是新手,不知道画这种复杂的东西。请任何人都可以用 SPRITEKIT 中的 MULTICOLOR 说明使用这些图纸的简单方法。表示它们的上部是一种颜色,下部是第二种颜色。更简洁地说,Shape分为两种颜色,无论是星形、矩形、三角形还是其他颜色。任何帮助将不胜感激。
谢谢 。
我可以使用简单的 SKSpriteNode 绘制矩形。但我无法在其中绘制其他类型的图纸,例如具有两种分色的三角形、圆形等。有人建议使用 CGPath。但我是新手,不知道画这种复杂的东西。请任何人都可以用 SPRITEKIT 中的 MULTICOLOR 说明使用这些图纸的简单方法。表示它们的上部是一种颜色,下部是第二种颜色。更简洁地说,Shape分为两种颜色,无论是星形、矩形、三角形还是其他颜色。任何帮助将不胜感激。
谢谢 。
您可以使用 SKShapeNode 在 sprite kit 中绘制形状,但每个 SKShapeNode 仅限于一种线条颜色(strokeColor)和一种填充颜色。
但是,您可以创建一个自定义 SKNode 子类,其中包含两个 SKShapeNode 作为子节点,每个子节点具有不同的 strokeColors/fillColors。
像这样的东西适用于自定义 SKNode,它绘制一个左上角红色,右下角绿色的正方形:
- (id) init {
if (self = [super init]) {
SKShapeNode* topLeft = [SKShapeNode node];
UIBezierPath* topLeftBezierPath = [[UIBezierPath alloc] init];
[topLeftBezierPath moveToPoint:CGPointMake(0.0, 0.0)];
[topLeftBezierPath addLineToPoint:CGPointMake(0.0, 100.0)];
[topLeftBezierPath addLineToPoint:CGPointMake(100.0, 100.0)];
topLeft.path = topLeftBezierPath.CGPath;
topLeft.lineWidth = 10.0;
topLeft.strokeColor = [UIColor redColor];
topLeft.antialiased = NO;
[self addChild:topLeft];
SKShapeNode* bottomRight = [SKShapeNode node];
UIBezierPath* bottomRightBezierPath = [[UIBezierPath alloc] init];
[bottomRightBezierPath moveToPoint:CGPointMake(0.0, 0.0)];
[bottomRightBezierPath addLineToPoint:CGPointMake(100.0, 0.0)];
[bottomRightBezierPath addLineToPoint:CGPointMake(100.0, 100.0)];
bottomRight.path = bottomRightBezierPath.CGPath;
bottomRight.lineWidth = 10.0;
bottomRight.strokeColor = [UIColor greenColor];
bottomRight.antialiased = NO;
[self addChild:bottomRight];
}
return self;
}