Ich kämpfe darum, die Koordinaten basierend auf der Berührung zu bekommen.
Der Einfachheit halber habe ich ein neues Projekt mit Swift und einem Sprite-Kit-Spiel erstellt - dem Standard-Spinning-Raumschiff.
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)
}
}
Alles, was ich zum Projekt hinzugefügt habe, war das NSLog
Linie, um die Koordinaten der Berührung auszugeben. Aber alles, was ich in der Ausgabe bekomme, ist 0
zum x
und y
.
Hat jemand eine Idee?
Antworten:
1 für die Antwort № 1Konvertieren Sie was auch immer die location
Objekt gibt für Variablen zurück x
und y
zu einem Float
wenn Sie die Koordinaten mit ausdrucken möchten NSLog
mit dem %f
Formatierer
NSLog("position x %f and y %f", Float(location.x), Float(location.y))
Wenn Sie nicht bereit sind, verwenden Sie NSLog
Sie können auch das tun, was Okapi in seinem Kommentar vorgeschlagen und verwendet hat println
. Beide Mechanismen funktionieren.
println("x:(location.x) y:(location.y)")