繁体   English   中英

如何在不旋转Swift的精灵的情况下沿曲线移动SKSpriteNode

[英]How to move SKSpriteNode in a curve without rotating the sprite in Swift

我正在尝试使用曲线移动精灵。 我得到以下代码:

let path = UIBezierPath()
path.move(to: CGPoint.zero)
path.addQuadCurve(to: CGPoint(x: ball.position.x+200, y: ball.position.y+50), controlPoint: CGPoint(x: ball.position.x+100, y: ball.position.y+200))
    ball.run(SKAction.follow(path.cgPath, speed: 1.0))

我有几个问题:1-为什么我的精灵在移动时会旋转,如果我可以控制这种旋转? 2-知道为什么球只是在很小的一部分内移动并且非常缓慢而不平稳地移动(10-20秒)吗?

有谁知道此代码如何工作? 我发现的所有答案都与具有不同方法的旧版Swift相关。

最后,我找到了解决方案:)

func beizerSprite()
   {
    // create a bezier path that defines our curve
    let path = UIBezierPath()
    path.move(to: CGPoint(x: 16,y: 239))
    path.addCurve(to:CGPoint(x: 301, y: 239),
                  controlPoint1: CGPoint(x: 136, y: 373),
                  controlPoint2: CGPoint(x: 178, y: 110))

    // use the beizer path in an action
    _playButton.run(SKAction.follow(path.cgPath,
                                    asOffset: false,
                                    orientToPath: true,
                                    speed: 50.0))
   }

SKSprite在屏幕上沿曲线移动。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM