2017-12-22 27 views
0

カーブを使ってスプライトを移動しようとしています。 私はこのコードを持って:私はいくつかの質問を持っているSwiftのスプライトを回転させずにカーブ内のSKSpriteNodeを移動する方法

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バージョンに関連していました。最後に

+0

これに役立つ人はいませんか?私はこの質問を15日前に投稿しましたが、答えはありません:-( – EranKT

答えて

0

私は解決策を見つけた:)

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を移動します。

関連する問題