如何解决同时运行 2 个 '.move' SKActions
我正在使用 SKSpriteNode
和 SKAction
实现五彩纸屑。
期望的行为: 五彩纸屑应该来回摇晃,同时也落下。
实际行为: 五彩纸屑掉下来——但不会来回摇晃。
我尝试过的:将两个操作放入 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,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
?
解决方法
将五彩纸屑节点作为父 SKNode 的子节点。让父节点运行重力动作,五彩纸屑节点运行摇摆动作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。