SpriteKit Dashed SKShapeNode Line性能缓慢

时间:2015-09-16 06:28:10

标签: objective-c xcode sprite-kit

我正在开发一款使用SpriteKit的游戏 - 目标C到目前为止还不错。我已经创建了一个无限生成线,但我需要让它破灭。我已经创建了虚线但是表现非常慢,我甚至无法玩。我目前的代码是:

    CGFloat pattern[2];
pattern[0] = 20.0;
pattern[1] = 10.0;

CGPathAddCurveToPoint(path,nil,cp1x,cp1y,cp2x,cp2y,p3.x,p3.y);

CGPathRef dashed =
CGPathCreateCopyByDashingPath(path,
                              NULL,
                              0,
                              pattern,
                              2);

GameLine* nodea = [GameLine node];
nodea.lineWidth = 4;
nodea.path = dashed;
nodea.startingPoint = startingPosition;
nodea.endingPoint = endingPosition;
nodea.controlPoint1 = CGPointMake(cp1x, cp1y);
nodea.controlPoint2 = CGPointMake(cp2x, cp2y);
nodea.strokeColor = [UIColor colorWithRed:77.f/255.f green:87.f/255.f blue:144.f/255.f alpha:1];
nodea.zPosition = 20;

SKEffectNode* node = [SKEffectNode node];

[node addChild:nodea];
[_world addChild:node];

node.shouldRasterize = YES;
node.shouldEnableEffects = YES;

[_lines addObject:nodea];

CGPathRelease(dashed);

我听说如果我将SKShapeNode添加到SKEffectNode问题就会解决但是......当我启用了对于我的SKEffectNode的shouldEnableEffects时,我的黑线背景就在我的头上了知道为什么,但表现很好。如果我把它设置为NO我没有那个黑色的背景,一切似乎都很好,但性能很慢。它是滞后的。我将非常感谢你的帮助!

0 个答案:

没有答案