gpt4 book ai didi

ios - Sprite Kit SKShapeNode 创建两个节点而不是一个

转载 作者:可可西里 更新时间:2023-11-01 03:06:39 26 4
gpt4 key购买 nike

我是 iOS 的 Sprite Kit 新手。我想在我的场景中添加一个形状节点。场景是灰色的,形状是场景中心的一个白色圆圈。我的场景代码如下。由于某种原因,将节点添加到场景的最后一行导致节点数增加了两个。如果我把那条线去掉,就会有 0 个节点,只有一个灰色场景。但是,如果我离开线,那么圆就在那里,但节点数是 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

最佳答案

您将获得 +1 节点以将填充添加到圆圈

所以,

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

}

关于ios - Sprite Kit SKShapeNode 创建两个节点而不是一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19456020/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com