【问题标题】:Using Core Graphics in Sprite Kit在 Sprite Kit 中使用核心图形
【发布时间】:2014-11-12 22:28:25
【问题描述】:

我正在使用 Sprite Kit。我有一个带有以下核心图形代码的形状:

CGMutablePathRef pathRef = CGPathCreateMutable();
CGPathMoveToPoint(pathRef, NULL, 300, 300);
CGPathAddLineToPoint(pathRef, NULL, 400, 300);
CGPathAddCurveToPoint(pathRef, NULL, 400, 335.727, 380.94, 368.739, 350, 386.603);
CGPathCloseSubpath(pathRef);

CGContextSetRGBFillColor(ctx, 1, 1, 1, 1);
CGContextAddPath(ctx, pathRef);
CGContextFillPath(ctx);

CGContextSetLineWidth(ctx, 1);
CGContextSetRGBStrokeColor(ctx, 0, 0, 0, 1);
CGContextAddPath(ctx, pathRef);
CGContextStrokePath(ctx);

CGPathRelease(pathRef);

我注意到当我将它添加到 SKShapeNode 时,它​​会失去填充和描边颜色。我还注意到,当我缩放此对象时,它会将其视为 SpriteNode,而不是矢量。

我知道你可以调整 SKShapeNode 的描边、填充、描边宽度、lineCap 和其他东西。

我想要两全其美。如何从 CoreGraphics 获得完整的形状、填充和笔触到 SKNode 中,以便我可以翻译它并接收鼠标点击事件?

感谢您的帮助。

【问题讨论】:

    标签: ios sprite-kit core-graphics skspritenode skshapenode


    【解决方案1】:

    Core Graphics 属性被忽略,仅应用形状节点上的属性。

    SKShapeNode 本质上只是将路径渲染到纹理上,因此形状节点与精灵没有什么不同。

    就是这样。交换一些功能以获得更好的渲染性能。

    【讨论】:

    • 嗯,好的,但必须有一种方法可以将核心图形图像放到节点或其他类型的视图上。
    • 我相信以前已经这样做过了。即将核心图形渲染到 UIImage,然后使用 UIImage 创建一个纹理/精灵。您几乎不能做的是每帧更新该图像,这只会让事情变得太慢。如果您面向 iOS 8.0+ 设备,您也可以使用着色器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-03
    • 1970-01-01
    • 2012-03-23
    • 1970-01-01
    • 1970-01-01
    • 2013-12-14
    相关资源
    最近更新 更多