IOS Spritekit: контур круга не отображается

На рисунке ниже желтый кружок не отображается в эмуляторе 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];
}

Я нашел эту статью, но ответа нет.

Редактировать: у меня есть рабочий обходной путь... но он мне не особенно нравится. Нарисуйте круг цвета фона поверх закрашенного круга:

-(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];
}

person TPot    schedule 15.10.2014    source источник


Ответы (1)


Кажется, есть ошибка с симулятором iOS и SKShapeNode. Мне удалось воспроизвести эту проблему на симуляторе, но никогда на устройстве, поэтому вам не стоит беспокоиться о добавлении обходного пути.

iOS Simulator хорош для тестирования в условиях низкой частоты кадров и разных размеров экрана, но, помимо этого, не очень надежен для тестирования игр SpriteKit в целом.

person gzafra    schedule 15.10.2014
comment
Спасибо - увы, я не лицензированный разработчик (пока), поэтому не могу протестировать на оборудовании. Спасибо за подтверждение, что это все еще работает на оборудовании. Я пойду дальше и посмотрю, будет ли это исправлено в будущем. - person TPot; 19.10.2014
comment
Похоже, это исправлено. Сейчас я запускаю xcode 6.1, и он работает. Проблема была с xcode 6.0. - person TPot; 06.11.2014