2016-07-24 18 views
2

Ich habe einen SKSpriteNode, der überall bewegt werden kann, wo ich mich berühre, und ich möchte, dass er sich entlang einer horizontalen Linie bewegt, so dass er sich nicht vertikal bewegen kann.Wie man einen SKSpriteNode entlang einer horizontalen Linie bewegt

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 

    } 

} 

Hier ist mein Code, danke im Voraus.

Antwort

1

starten:

ship.position.x = location.x 

Derzeit Sie setzen die Position des Schiffes auf die Lage des Hahns. Wenn Sie eine konsistente y-Position wünschen, setzen Sie nur das x.

+0

Dies bietet keine Antwort auf die Frage. Um einen Autor zu kritisieren oder um Klärung zu bitten, hinterlasse einen Kommentar unter seinem Beitrag. - [Aus Bewertung] (/ review/low-quality-posts/13108728) –

+0

Dies liefert eine Antwort. Es zeigt, wie das Problem des OP gelöst werden kann. – penatheboss

+0

Sie sollten erklären, warum dieser Code als eine Antwort betrachtet wird. Dass die Position der Schiffe aktualisiert werden muss, indem man ihnen die Werte vom aktuellen Touch-Standort zuweist usw. Das bloße Posten des Quellcodes ohne irgendeine Erzählung ist verpönt. –