运行 2 '.move' SKActions 同时进行

Run 2 '.move' SKActions simultaneously

我正在使用 SKSpriteNodeSKAction 实现五彩纸屑。

期望的行为: 五彩纸屑应该 来回摆动 同时掉落。

实际行为: 五彩纸屑落下 -- 但不会来回摇摆。

我试过的:把两个动作放到一个group中,像这样:

            let x = MainData.screenWidth*CGFloat.random(in: 0...1)
            let testNode = SKSpriteNode(texture: MainData.confettiTexture)
            let gravityAction = SKAction.move(to: CGPoint(x: x, y: -100.0), duration: 5.0)
            let swaySequence = SKAction.sequence([
                SKAction.move(by: CGVector(dx: -MainData.screenWidth*0.2, dy: 0.0), duration: 0.5),
                SKAction.move(by: CGVector(dx: MainData.screenWidth*0.2, dy: 0.0), duration: 0.5)
            ])
            let swayInfinitely = SKAction.repeatForever(swaySequence)
            let group = SKAction.group([
                swayInfinitely,
                gravityAction
            ])
            
            gravityAction.timingMode = .easeIn
            
            testNode.position = CGPoint(x: x, y: MainData.screenHeight)
            testNode.size = CGSize(width: MainData.screenWidth*0.05, height: MainData.screenWidth*0.05)
            
            testNode.run(group)

我的理论: 我猜这个问题的发生是因为我试图同时使用 move(to:duration:)move(by:duration:),因此提供了冲突的 x 轴值。

那么,我怎样才能让我的五彩纸屑在掉落的同时来回摇摆呢?我在做什么 wrong/not 了解 SKAction

将五彩纸屑节点作为父 SKNode 的子节点。让父节点 运行 重力作用,让五彩纸屑节点 运行 摇摆。