2016-06-24 8 views
3

Ich versuche, das Zentrum meines Sprite herauszufinden, ich benutzte ein Fußball-Sprite, veränderte Größe 120 zu 120. Ich schaffte es, den Touch-Standort zu bekommen.Wie bekomme ich das wahre Zentrum eines SKSpriteNode in Swift 2?

Der Weg zum Zentrum sollte sprite.origin.x + (sprite.width/2) sein, aber aus irgendeinem Grund ist der Wert, den ich bekomme, nicht sinnvoll. Denn egal wo ich den Ball berühre, der Touch location.x ist immer kleiner als das Sprite Center, obwohl ich zum Beispiel die rechte Seite des Balls berührt habe, so dass location.x> sprite.center sein sollte. x.

Dies ist der kleine Code Ball Mittelpunkt zu bekommen

let ballCenter = CGVectorMake(ball.position.x + (ball.frame.width/2), 
           ball.position.y + (ball.frame.height/2)) 

Aber wenn ich die Ergebnisse wie folgt zu drucken, wird immer auf den „echten“ Fall.

Das macht mich verrückt, kann mir jemand helfen, das zu verstehen? Der Sprite-Ursprung befindet sich nicht in der unteren linken Ecke?

Warum auch der Szenenrahmen so klein ist? Ich sehe, dass meine Bildschirmbreite 375.0 und Bildschirmhöhe 667.0 ist, wenn ich ein iPhone 6S verwende, sollte es nicht größer sein? Das ist so verwirrend.

Vielen Dank im Voraus.

Antwort

4

Der Ursprung eines SpriteNodes befindet sich standardmäßig in der Mitte des Sprites. Wenn Sie die Mitte des Knotens erhalten möchten, verwenden Sie einfach let ballCenter = sprite.position - dies gibt Ihnen einen CGPoint, mit dem Sie arbeiten können. Sie können dann auf die X- und Y-Koordinaten zugreifen, indem Sie ballCenter.x und ballCenter.y verwenden.

Wenn Sie einen Punkt erstellen möchten, den Sie gerade mit ballCenter bearbeiten, verwenden Sie CGPointMake() statt CGVectorMake().

+0

Sie haben Recht! Danke vielmals! – msqar

+0

Gern geschehen! – claassenApps

+0

Können Sie sehen, ob Sie mir dabei helfen können? http://stackoverflow.com/questions/37998343/impulse-skspritenode-depending-on-touched-location-swift-2 es macht mich verrückt haha ​​versuchte schon so viele Dinge und ich konnte immer noch nicht mit einem netten Weg auf es tun – msqar

Verwandte Themen