我希望两种不同类型的节点一个接一个地淡化alpha到0(带序列)。但是为了找到要淡化的节点,我使用EnumerateChildNodeWithName并且有两个,所以我不能(我认为)使用序列,因为我必须使用EnumerateChildNodeWithName之外的序列(因为有两个他们在那时,我失去了对节点的控制。
不确定这是否有意义,但这是我的代码(这会使两种类型的节点同时消失):
nodeMovingPlatform1.enumerateChildNodesWithName("*") {
node, stop in
if node.position.x + nodeMovingPlatform1.position.x > self.frame.size.width/2 + node.frame.size.width/2 {
node.removeFromParent()
} else {
if node.name == "landscapeTrigger" {
node.name = "landscape"
node.runAction(actionFadeAlphaTo0_3)
}
}
}
nodeMovingPlatform2.enumerateChildNodesWithName("*") {
node, stop in
if node.position.x + nodeMovingPlatform2.position.x > self.frame.size.width/2 + node.frame.size.width/2 {
node.removeFromParent()
} else {
if node.name == "landscapeTrigger" {
node.name = "landscape"
node.runAction(actionFadeAlphaTo0_3)
}
}
}
答案 0 :(得分:1)
对此的解决方案是使用SKAction Sequences
,它只在第一个动作完成后运行第二个动作。
来自Apple文档
序列是一组连续运行的动作。当一个节点 运行一个序列,动作按连续顺序触发。什么时候 一个动作完成,下一个动作立即开始。当。。。的时候 序列中的最后一个动作完成,序列动作也完成 完成。