2017-02-17 19 views
1

私が今持っているもの:ノードは現在、x軸上で直線上を移動しています。私は達成するために探しています何SKSpriteNodeを下向きのカーブにする方法

let actionBomb = SKAction.repeatForever(SKAction.moveTo(x: 495, duration: 3.0)) 

目標は、地面を打つまで下降曲線におけるノード旅を持つことです。私はこれを達成するためにどうやって行くのか分からない。ここで

は私の現在のコードです:

func bombAction(){ 


     if(self.action(forKey: "spawnBomb") != nil){return} 
     let bombTimer = SKAction.wait(forDuration: 5, withRange: 8) 
     let spawnbombA = SKAction.run { 

      self.bomb = SKSpriteNode(imageNamed: "bomb1") 
      self.bomb.zPosition = 1 
      self.bomb.physicsBody = SKPhysicsBody(circleOfRadius: self.bomb.size.height/10.0) 
      self.bomb.physicsBody?.isDynamic = true 
      self.bomb.physicsBody?.allowsRotation = false 
      self.bomb.physicsBody?.affectedByGravity = true 

      var bombPosition = Array<CGPoint>() 

      bombPosition.append((CGPoint(x:400, y:475))) 
      bombPosition.append((CGPoint(x:500, y:475))) 
      bombPosition.append((CGPoint(x:750, y:475))) 

let shuffledLocations = GKRandomSource.sharedRandom().arrayByShufflingObjects(in: bombPosition) as! [CGPoint] 

      self.bomb.position = shuffledLocations[0] 

      let spawnLocationBomb = bombPosition[Int(arc4random_uniform(UInt32(bombPosition.count)))] 

      let actionBomb = SKAction.repeatForever(SKAction.moveTo(x: 495, duration: 3.0)) 
      self.bomb.run(actionBomb) 
      self.bomb.position = spawnLocationBomb 
      self.addChild(self.bomb) 
      print(spawnLocationBomb) 

     } 

     let sequenceBomb = SKAction.sequence([bombTimer, spawnbombA]) 
     self.run(SKAction.repeatForever(sequenceBomb), withKey: "spawnBomb")  
     } 
+0

アクションのために重力を設定することを忘れないでください:SKAction.moveToは、爆弾を移動するには、重力によって影響されていません代わりに衝動力を使うべきです。 [こちら](https://developer.apple.com/reference/spritekit/skphysicsbody/1519900-applyimpulse)をチェックしてください。 –

答えて

1

は、あなたのシーンのphysicsWorld

class GameScene: SKScene { 

    override func didMove(to view: SKView) {   
     physicsWorld.gravity = CGVector(dx: 0, dy: -1) 
    } 
} 
関連する問題