首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新附加到SKShapeNode的SKNode

更新附加到SKShapeNode的SKNode
EN

Stack Overflow用户
提问于 2013-11-24 19:35:10
回答 2查看 1.7K关注 0票数 3

我正在尝试修改我已经添加到SKShapeNode中的SKNode。

这是我将SKNode添加到屏幕并将SKShapeNode附加到屏幕上的代码。现在我正在尝试修改特定SKShapeNode的颜色,但我不知道该如何做。有什么建议吗?

代码语言:javascript
复制
SKNode *dot = [SKNode node];

SKShapeNode *circle = [SKShapeNode node];
circle.path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(0, 0, 20, 20)].CGPath;
circle.fillColor = [UIColor blueColor];
circle.strokeColor = [UIColor blueColor];
circle.glowWidth = 5;
[dot addChild:circle];

[self addChild:dot];
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-24 19:54:04

试着移除所有的孩子和读新的孩子

代码语言:javascript
复制
[dot removeAllChildren];
[dot  addChild:circle];
票数 2
EN

Stack Overflow用户

发布于 2013-11-25 06:22:54

使SKShapeNode成为SKScene的属性

代码语言:javascript
复制
@interface YourScene()
@property SKShapeNode *circle;
@end

将创建圆圈的代码更改为:

代码语言:javascript
复制
self.circle = [SKShapeNode node];
self.circle.path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(0, 0, 20, 20)].CGPath;
self.circle.fillColor = [UIColor blueColor];
self.circle.strokeColor = [UIColor blueColor];
self.circle.glowWidth = 5;
[dot addChild:self.circle];

现在您可以访问场景中任何位置的circle节点:

代码语言:javascript
复制
- (void)changeColor {
    self.circle.fillColor = [SKColor redColor];
}

另一种选择是给节点一个名称:

代码语言:javascript
复制
SKShapeNode *circle = [SKShapeNode node];
.....
circle = @"circle";

并按名称访问该节点。

代码语言:javascript
复制
- (void)changeColor {
    // Assuming the dot node is a child node of the scene
    SKShapeNode *circle = (SKShapeNode*)[self.scene childNodeWithName:@"/circle"];
    circle.fillColor = [SKColor redColor];
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20179937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档