IOS Spritekit:圆形轮廓未显示

时间:2014-10-15 04:21:11

标签: sprite-kit skspritenode

在下面,IOS仿真器中不显示黄色圆圈。如果我添加当前已注释掉的setFillColor,那么我会得到一个红色圆圈。

为什么形状轮廓没有显示? 有没有办法触发大纲?

-(void)addTargetNode2 {
    float radius=90;
    SKShapeNode *targetOuter = [SKShapeNode shapeNodeWithCircleOfRadius:radius];
    //[targetOuter setFillColor:[UIColor redColor]];
    [targetOuter setStrokeColor:[UIColor yellowColor]];
    [targetOuter setLineWidth:1];

    //Position the node.
    targetOuter.position = CGPointMake(CGRectGetMidX(self.frame),
                                      CGRectGetMidY(self.frame));

    [self addChild:targetOuter];
}

我确实找到了this文章 - 但没有答案。

编辑: 我有一个工作的工作......但不是特别喜欢它。在圆圈的顶部绘制圆圈背景颜色:

-(void)addTarget {
    float radius=50;
    CGFloat borderWidth=3;

    //Draw the Circle.
    SKShapeNode *targetOuter = [SKShapeNode shapeNodeWithCircleOfRadius:radius];
    [targetOuter setName:@"targetOuter"];
    [targetOuter setFillColor:[UIColor yellowColor]];
    //Following line should set the outline color but isn't working.
    //[targetOuter setStrokeColor:[UIColor yellowColor]];
    [targetOuter setLineWidth:1];
    targetOuter.position = CGPointMake(CGRectGetMidX(self.frame),
                                      CGRectGetMidY(self.frame));        
    [self addChild:targetOuter];

    /* Work around
     Add a circle the color of the background to emulate an outline.
     Can be removed in targetOuter outline works.
    */
    SKShapeNode *targetInner = [SKShapeNode shapeNodeWithCircleOfRadius:radius-borderWidth];
    [targetInner setFillColor:self.backgroundColor];
    targetInner.position = targetOuter.position;
    [self addChild:targetInner];
}

1 个答案:

答案 0 :(得分:1)

似乎iOS模拟器和SKShapeNode存在错误。我已经能够在模拟器上复制这个问题,但从不在设备上复制,所以你不必担心添加一个解决方法。

iOS模拟器很适合测试低帧率条件和不同的屏幕尺寸,但除此之外,测试SpriteKit游戏并不是非常可靠。