【问题标题】:Run 2 '.move' SKActions simultaneously同时运行 2 个 '.move' SKActions
【发布时间】:2021-03-11 15:49:45
【问题描述】:

我正在使用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 轴值。

那么,我怎样才能让我的五彩纸屑在摔倒的同时来回摇摆?我在做什么错/不了解SKAction

【问题讨论】:

    标签: swift sprite-kit


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-20
      • 1970-01-01
      • 2011-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多