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 № 1Converta 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)")