2016-07-24 2 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 

    } 

} 

Вот мой код, спасибо заранее.

ответ

1

Попробуйте это:

ship.position.x = location.x 

В настоящее время, вы устанавливаете местоположение судна в месте расположения крана. Если вы хотите согласованную позицию y, установите только x.

+0

Это не дает ответа на вопрос. Чтобы критиковать или просить разъяснения у автора, оставьте комментарий ниже их сообщения. - [Из обзора] (/ review/low-quality-posts/13108728) –

+0

Это дает ответ. Он показывает, как решить проблему OP. – penatheboss

+0

Вы должны объяснить, почему этот код считается ответом. То, что положение корабля необходимо обновить, присвоив ему значения из текущего местоположения касания и т. Д. Просто публикуется исходный код без какого-либо повествования. –

Смежные вопросы