2017-05-08 8 views

答えて

1

をKnightOfDragonの提案@を1として、あなたはこのように、パスを作成し、ノードは、それに従うことを行うことができます:

class GameScene: SKScene { 


    override func didMove(to view: SKView) { 


     //1. create points 
     let points = [ 
      CGPoint(x:frame.minX,y:frame.minY), 
      CGPoint(x:frame.maxX,y:frame.maxY), 
      CGPoint(x:frame.maxX,y:frame.midY), 
      CGPoint.zero 
         ] 

     //2. Create a path 
     let path = CGMutablePath() 

     //3. Define starting point 
     path.move(to: points[0]) 

     //4. Add additional points 
     for point in points[1..<points.count]{ 

      print("point : \(point)") 
      path.addLine(to: point) 
     } 

     //5. Create an action which will make the node to follow the path 
     let action = SKAction.follow(path, speed: 122) 

     let sprite = SKSpriteNode(color: .white, size: CGSize(width: 100, height: 100)) 

     addChild(sprite) 

     sprite.run(action, withKey: "aKey") 

    } 
} 

これはあるかもしれませんノードがそれに続くパスに向かうようにする場合は、受け入れられた答えよりも便利です(zRotationプロパティはノードがパスをたどるようにアニメートします)。

1

あなたはこのようにそれを行うことができます。

import SpriteKit 

class GameScene: SKScene,SKSceneDelegate { 


    override func didMove(to view: SKView) { 

     //1. create points 
     let points = [CGPoint(x:120,y:20),CGPoint(x:220,y:20),CGPoint(x:40,y:320)] 

     var actions = [SKAction]() 

     //2. Create actions 
     for point in points { 
      actions.append(SKAction.move(to: point, duration: 1)) 
     } 

     let sprite = SKSpriteNode(color: .white, size: CGSize(width: 100, height: 100)) 

     addChild(sprite) 

     //3. Create the action sequence from previously created actions 
     let sequence = SKAction.sequence(actions) 

     //4. Run the sequence (use the key to stop this sequence) 
     sprite.run(sequence, withKey:"aKey") 

    } 
} 
+0

SKSpriteNodeを移動する方向に回転する方法はありますか? –

+0

また、アニメーションごとに速度を一定にすることはできますか? –

+0

この[回答]の目標部分を見てください(http://stackoverflow.com/a/36235426/3402095)。一定の速度を解くには、式Time = Distance/Speedを使用します。あなたが立ち往生した場合は、別の質問をしてください。私または他の人がそれに答えるでしょう。これは別の話題であり、あなたはすでにあなたの元の質問に答えているからです... – Whirlwind

関連する問題