在我的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值。