2013-10-18 13 views
8

iOSのスプライトキットを初めて使用しました。自分のシーンにシェイプノードを追加したい。シーンはグレーで、その形状はシーンの中央の白い円です。私のシーンコードは以下の通りです。なんらかの理由で、ノードをシーンに追加する最後の行では、ノード数が2ずつ増加します。私がその行を残しておけば、ノードは0個で灰色のシーンしかありません。しかし、私が線を離れるとサークルはそこにありますが、ノード数は2です。これは大きな問題です。サークルにノードを追加すると、ノード数は2倍になり、処理が遅くなるからです。誰でも問題が何であるか知っていますか?とても有難い!スプライトキットSKShapeNodeは1つではなく2つのノードを作成します

@interface ColorWheelScene() 
@property BOOL contentCreated; 
@end 

@implementation ColorWheelScene 

- (void)didMoveToView:(SKView *)view { 
    if(!self.contentCreated) { 
     [self createSceneContents]; 
     self.contentCreated = YES; 
    } 
} 

- (void)createSceneContents { 
    self.backgroundColor = [SKColor grayColor]; 
    self.scaleMode = SKSceneScaleModeAspectFit; 

    SKShapeNode *wheel = [[SKShapeNode alloc]init]; 
    UIBezierPath *path = [[UIBezierPath alloc] init]; 
    [path moveToPoint:CGPointMake(0.0, 0.0)]; 
    [path addArcWithCenter:CGPointMake(0.0, 0.0) radius:50.0 startAngle:0.0 endAngle:(M_PI*2.0) clockwise:YES]; 
    wheel.path = path.CGPath; 
    wheel.fillColor = [SKColor whiteColor]; 
    wheel.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame)); 
    [self addChild:wheel]; 
} 

@end 
+0

は、あなたが本当に今までに一度と呼ばれていることは、シーンの内容を作成して確認して、円

そうに塗りつぶしを追加するための1ノードを取得しますか?ログインまたはブレイクポイントを入れてください – AwDogsGo2Heaven

+0

はい。私はそこにログを入れて、それは一度だけ呼び出されます。 – Hash88

+0

私はあなたを正しく理解していれば、この図形を一度追加すると2つのノードが追加され、2つ追加すると4つのノードが追加されます。 – AwDogsGo2Heaven

答えて

15

あなたは

- (void) makeACircle 
{ 
    SKShapeNode *ball; 
    ball = [[SKShapeNode alloc] init]; 

// stroke only = 1 node 
// CGMutablePathRef myPath = CGPathCreateMutable(); 
// CGPathAddArc(myPath, NULL, 0,0, 60, 0, M_PI*2, YES); 
// ball.path = myPath; 
// ball.position = CGPointMake(200, 200); 
// [self addChild:ball]; 

// stroke and fill = 2 nodes 
    CGMutablePathRef myPath = CGPathCreateMutable(); 
    CGPathAddArc(myPath, NULL, 0,0, 60, 0, M_PI*2, YES); 
    ball.path = myPath; 
    ball.fillColor = [SKColor blueColor]; 
    ball.position = CGPointMake(200, 200); 
    [self addChild:ball]; 

} 
+0

ああ、それは問題です。非常にありがとうSmick! – Hash88

+0

親指が上がっています:-)ええ、まだ奇妙ですが...もしあなたが答えがうまくいけば正解しているので、質問は解決しました。 – DogCoffee

関連する問題