swift - 如何沿水平线移动 SKSpriteNode

标签 swift skspritenode touchesmoved

我有一个 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

目前,您正在将船的位置设置为水龙头的位置。如果你想要一个一致的 y 位置,只设置 x。

关于swift - 如何沿水平线移动 SKSpriteNode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38556848/

相关文章:

ios - 我今天应该知道 Objective-C 才能使用 Swift

swift - 如何使用委托(delegate)从 UIviewController 获取值而不实例化对象

swift : Anchor SKSpriteNode

ios - 可拖动的 UIView 移动不正确

iphone - 检测 UIWebview 中的滑动手势

ios - 快速触摸开始并将其显示在触摸的对象上

ios - 有没有一种快速的方法来确定 iPhone 型号是否比某个型号更新?

ios - Swift UI 在协议(protocol)中使用 View(协议(protocol) 'View' 只能用作通用约束,因为它有 Self 或关联的类型要求)

swift - 添加 SpriteNodes 并根据时间删除或使用 SpriteKit 单击

swift - 如何获取 SKSpriteNode 名称?