2016-07-24 16 views
2

私はタッチしている場所であればどこにでも移動できるSKSpriteNodeを持っていますが、私の指がどこにあるのかを水平線に沿って移動して垂直に動かすことはできません。水平線に沿ってSKSpriteNodeを移動する方法

class GameScene: SKScene { 

var ship = SKSpriteNode() 

override func didMoveToView(view: SKView) { 
    /* Setup your scene here */ 



    let shipTexture = SKTexture(imageNamed: "Evaders Art/EvadersShipVert2.png") 

    ship = SKSpriteNode(texture: shipTexture) 

    ship.position = CGPoint(x: CGRectGetMidX(self.frame), y: CGRectGetMidY(self.frame) - 250) 

    ship.size = CGSize(width: 90, height: 115) 

    shipTexture.filteringMode = SKTextureFilteringMode.Nearest 

    ship.zPosition = 2 





    self.addChild(ship) 



} 

override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) { 
    var nodeTouched = SKNode() 
    var currentNodeTouched = SKNode() 

    for touch: AnyObject in touches { 
     let location = touch.locationInNode(self) 

     nodeTouched = self.nodeAtPoint(location) 
     ship.position = location 

    } 

} 

ここに私のコードがあります。ありがとうございます。あなたは、タップの場所に船の位置を設定している、現在

ship.position.x = location.x 

答えて

1

はこれを試してみてください。一貫したyポジションが必要な場合は、xだけを設定します。

+0

これは質問に対する答えを提供しません。批評をしたり、著者の説明を求めるには、投稿の下にコメントを残してください。 - [レビューから](/レビュー/低品質の投稿/ 13108728) –

+0

これは答えを提供します。 OPの問題を解決する方法を示します。 – penatheboss

+0

なぜこのコードが答えと考えられるのか説明してください。現在のタッチ位置などの値を割り当てることで、船の位置を更新する必要があることを伝えます。 –