2013-10-18 17 views
8

Tôi mới sử dụng Bộ công cụ Sprite của iOS. Tôi muốn thêm một nút hình dạng vào cảnh của tôi. Khung cảnh có màu xám và hình dạng là một vòng tròn màu trắng ở giữa khung cảnh. Mã cảnh của tôi là dưới đây. Đối với một số lý do, dòng cuối cùng thêm nút vào cảnh làm cho số lượng nút tăng lên hai lần. Nếu tôi để lại dòng đó, có 0 nút và chỉ là một cảnh xám. Nhưng nếu tôi rời khỏi dòng thì vòng tròn là có nhưng số lượng nút là 2. Đây là một vấn đề lớn bởi vì khi tôi thêm nhiều nút hơn vào vòng tròn, số lượng nút gấp đôi những gì nó cần và làm chậm mọi thứ. Bất cứ ai biết vấn đề là gì? Nhiều đánh giá cao!Sprite Kit SKShapeNode tạo hai nút thay vì một nút

@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

đã xác minh rằng bạn tạo ra nội dung cảnh được thực sự bao giờ được gọi là một lần? có thể đặt một đăng nhập hoặc điểm ngắt – AwDogsGo2Heaven

+0

Có. Tôi đặt một bản ghi ở đó và nó chỉ được gọi một lần. – Hash88

+0

Vì vậy, nếu tôi hiểu bạn một cách chính xác, nếu bạn thêm hình dạng này một lần, nó nói họ là 'hai' nút, nếu bạn thêm nó hai lần nó sẽ nói họ là 'bốn' nút.? – AwDogsGo2Heaven

Trả lời

15

Bạn nhận được 1 nút để thêm điền vào vòng tròn

Vì vậy,

- (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

Ahh đó là vấn đề. Cảm ơn rất nhiều Smick! – Hash88

+0

Thumbs up :-) yeah của nó vẫn còn lạ nhưng ... nếu bạn hài lòng với câu trả lời xin vui lòng đánh dấu chính xác, vì vậy câu hỏi giải quyết. – DogCoffee

Các vấn đề liên quan