未在[节点副本]上复制SKNode alpha

时间:2017-01-28 13:13:42

标签: ios objective-c sprite-kit

在我的sprite工具包项目中,我试图复制一个节点及其子节点,但是在使用[SKNode copy]时,似乎所有以前设置的alpha属性都丢失了,这包括所有子节点。

是否有一种优雅的方法可以将alpha属性与节点一起复制?

编辑: 这是我的工作,适用于我的项目,希望能帮助其他人,但我不会称之为完整的答案,所以我将问题保持开放。

我创建了一个名为" alphaNames"的数组。我已经更改了alpha值的节点名称和一个名为" alphaValues"的数组。使用相应的值,然后在添加到使用复制的节点之前实现以下代码。

for (NSString *nodeName in alphaNames) {
     NSString *searchString = @"//";
     SKNode *alphaNode = [copiedNode childNodeWithName:[searchString stringByAppendingString:nodeName]];
     alphaNode.alpha = [[alphaValues objectAtIndex:[alphaNames indexOfObject:nodeName]] floatValue];
}

这将在复制的节点下搜索整个树,以查找alphaNames数组中名称的节点,然后对其应用相应的alpha值。

0 个答案:

没有答案