Swift 在多个SKSpriteKit纹理之间淡入淡出

Swift 在多个SKSpriteKit纹理之间淡入淡出,swift,sprite-kit,Swift,Sprite Kit,新年快乐!我正在尝试使用序列SKAction淡入多个SKTextures,但我不确定如何做到这一点。我目前使用的方式在纹理之间的变化期间没有任何效果,如果可能的话,这就是我正在寻找的。谢谢 var playButtonAnimation: SKAction var playButtonFadeIn: SKAction var playButtonFadeOut: SKAction var playButtonTextures:[SKTexture] = [] for i in 1...7 {

新年快乐!我正在尝试使用序列SKAction淡入多个SKTextures,但我不确定如何做到这一点。我目前使用的方式在纹理之间的变化期间没有任何效果,如果可能的话,这就是我正在寻找的。谢谢

var playButtonAnimation: SKAction
var playButtonFadeIn: SKAction
var playButtonFadeOut: SKAction
var playButtonTextures:[SKTexture] = []
 for i in 1...7 {
       playButtonTextures.append(SKTexture(imageNamed: "button\(i)"))
 }
playButtonAnimation = SKAction.animate(with: playButtonTextures, timePerFrame: 3.0)
playButtonFadeIn = SKAction.fadeIn(withDuration: 1.0)
playButtonFadeOut = SKAction.fadeOut(withDuration: 1.0)
playButton.zPosition = -25
playButton.run(SKAction.sequence([playButtonFadeIn,playButtonAnimation,playButtonFadeOut]))
playButton.run(SKAction.repeatForever(playButtonAnimation))
addChild(playButton)

据我所知,您希望使用SKAction.group操作来完成所需的工作

当前,此代码将按纹理淡入淡出:

var playButtonAnimation: SKAction
var playButtonFadeIn: SKAction
var playButtonFadeOut: SKAction
var playButtonTextures:[SKTexture] = []
 for i in 1...7 {
       playButtonTextures.append(SKTexture(imageNamed: "button\(i)"))
 }
playButtonAnimation = SKAction.animate(with: playButtonTextures, timePerFrame: 3.0)
playButtonFadeIn = SKAction.fadeIn(withDuration: 1.0)
playButtonFadeOut = SKAction.fadeOut(withDuration: 1.0)
let seq = SKAction.sequence([playButtonFadeIn,SKAction.wait(forDuration:1.0),playButtonFadeOut])
let grp = SKAction.group([SKAction.repeat(seq,count:7),playButtonAnimation])

playButton.zPosition = -25
playButton.run(SKAction.repeatForever(grp))
addChild(playButton)

你想要的效果还不清楚。要有一个动画序列,其中每个帧淡入淡出,然后在后续帧中重复?要使序列动画化,同时精灵应该淡入,等待一段时间,然后淡出?还有别的吗?一般来说,您可能不希望一个精灵运行两个动作,这两个动作都在执行
动画(使用:timePerFrame:)
。他们会在试图改变纹理时互相干扰。有点,我试图让每一帧淡入下一帧。我试过FadeIn和FadeOut,但它们不是我想要的。你的意思是像视频交叉淡入(或溶解,我想它有时被称为)之类的东西?你见过那些在颜色之间淡入的光带吗?<--这里有一个例子。我试着用颜色来做到这一点,但我把它们作为SKTextures如果你想在纹理之间淡入淡出,你可能必须有两个精灵节点,交替改变字母,因为纹理切换是离散的动作。这是可行的,尽管我不确定它会是什么样子。如果只是颜色,另一个选项是为精灵的形状使用未着色(灰度)纹理,然后通过
color
colorBlendFactor
属性为其提供颜色。这些属性可以通过
colorize
动作在一段时间内设置动画。如果我理解他的意思,他不希望它褪色,然后带着新的纹理回来。相反,他希望同时显示两个纹理,一个逐渐淡入,另一个逐渐淡出,就像一个相当常见的视频过渡。他链接到上面的youtube视频,显示一些LED正在做他想做的事情。另外,在只有一个精灵节点的情况下,不可能实现与交叉淡入相同的效果(除了我在上面提到的仅改变颜色的特殊情况下的着色)。是的,我看过视频,不确定这与他的纹理或他的问题有何关联,但我会添加交叉淡入,现在我再考虑一下,也许对于一个带有自定义着色器的精灵来说,交叉淡入淡出是可能的,但是如果有一种方法可以在一个精灵上的纹理之间进行渐变,而没有这种方法,我想了解一下。啊,骷髅虫确实可以作为纹理参考。这是有用的信息。不遗憾。非常感谢你们两位的努力。因此,我尝试了上面发布的代码,它适用于第一幅图像,但随后停止。除了playButtonTextures数组中的多个纹理外,是否还有其他效果?