触摸位置坐标为零

Co-ordinate of touch location is zero

我正在努力获取基于触摸的坐标。

为简单起见,我使用 swift 和精灵套件游戏创建了一个新项目 - 默认的旋转宇宙飞船。

override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
    /* Called when a touch begins */

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

        let sprite = SKSpriteNode(imageNamed: "Spaceship")

        sprite.xScale = 0.5
        sprite.yScale = 0.5
        sprite.position = location
        **NSLog("position x %f and y %f", location.x, location.y)**
        let action = SKAction.rotateByAngle(CGFloat(M_PI), duration: 1)

        sprite.runAction(SKAction.repeatActionForever(action))

        self.addChild(sprite)
    }
}

我添加到项目中的只是 NSLog 行来输出触摸的坐标。但是我在输出中得到的只是 0 for x and y.

有人知道吗?

如果要使用 NSLog 打印坐标,请将 location 对象为变量 xy 返回的任何内容转换为 Float %f 格式化程序。

NSLog("position x %f and y %f", Float(location.x), Float(location.y))

如果您还没有死心塌地地使用 NSLog,您也可以按照 Okapi 在他的评论中的建议使用 println。两种机制都有效。

println("x:\(location.x)  y:\(location.y)")