/ / Coordenada de localização por toque é zero - rápida, sprite-kit, coordenadas

Coordenada de localização por toque é zero - rápida, sprite-kit, coordenadas

Eu estou lutando para obter as coordenadas com base no toque.

Para simplificar, criei um novo projeto usando swift e um jogo de sprite kit - a espaçonave padrão de spinning.

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)
}
}

Tudo o que eu adicionei ao projeto foi o NSLog linha para produzir as coordenadas do toque. Mas tudo que eu obtenho na saída é 0 para x e y.

Alguem tem alguma idéia?

Respostas:

1 para resposta № 1

Converta qualquer que seja o location objeto está retornando para variáveis x e y para um Float se você quiser imprimir as coordenadas usando NSLog com o %f formatador.

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

Se você não estiver determinado a usar NSLog, você também pode fazer o que o Okapi sugeriu em seu comentário e usar println. Ambos os mecanismos funcionam.

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