我正在创建一个小游戏,我在尝试绘制一个圆圈时遇到很多问题。我想为osx而不是为iOs做这件事。
使用此代码绘制矩形非常简单。
CGSize posBarraVida;
posBarraVida.height = 10;
posBarraVida.width = 100;
SKSpriteNode* barraVida = [[SKSpriteNode alloc] initWithColor:[SKColor redColor] size:posBarraVida];
barraVida.position = CGPointMake(self.size.width/8 + 50, self.size.height - 25.0f);
barraVida.zPosition = 1;
[self addChild:barraVida];
但我有这个代码画一个圆圈,但我在尝试将NSBezierPath
的路径转换为CGPathRef
的{{1}}属性时遇到错误。
SKShapeNode
答案 0 :(得分:5)
path
上的SKShapeNode
属性输入为CGPathRef
。这表明您需要使用CGPath对象而不是NSBezierPath对象。在某些情况下,类的Cocoa版本是免费的桥接到“核心”版本,但在这种情况下不是。
相反,你需要类似的东西:
CGMutablePathRef path = CGPathCreateMutable();
CGPathAddEllipseInRect(path, NULL, rect);
circle.path = path;
CGPathRelease(path);
答案 1 :(得分:0)
使用
circle.path = circlePath.bezierPath.CGPath;
而不是
circle.path = circlePath.bezierPath;
我更喜欢使用Bezier Path代替CGMutablePathRef
和Sprite Kit。有时使用CGMutablePathRef
作为SKPhysicsBody