2016-09-01 5 views
0

Ich habe ein paar Bilder, die erkennen können, wenn sie im Augenblick berührt werden ichSwift Sprite-Kit SKPhyshicsBody

plane.physicsBody = SKPhysicsBody(circleOfRadius: plane.frame.height/2) 

verwenden, aber ich brauche es, so dass es die Grenze der Bild keinen Kreis oder Rechteck ist.

+0

Was soll es sein? – Knight0fDragon

+0

Ich möchte, dass es die Größe des Bildes festlegt, das ihm zugewiesen wurde, es ist ein komplexes 2d-Objekt, bei dem ein Kreis und ein Rect nicht zu seiner exakten Größe passen. Also muss ich den Physikkörper an die exakte Größe des Bildes anpassen @ Knight0fDragon – shane

+1

dann benutze SKPhysicsBody (texture :), wenn dein Sprite aus mehreren Knoten besteht, erstelle daraus eine Textur von view.textureFromNode – Knight0fDragon

Antwort

0

Wir haben ein Flugzeug und Sie wollen einen physischen Körper. Ihre erste Annäherung ist circleOfRadius (die physische Darstellung ist ein Kreis mit einem bestimmten Radius). Sie können eine andere Form verwenden, wie ein Rechteck:

plane.physicsBody = SKPhysicsBody(rectangleOfSize: CGSizeMake(100, height: 100)) 

Wie in den Kommentaren erklärt auch die Form eines Sprite (Textur) verwenden können, um die Form der Physik Körper zu schaffen:

plane.physicsBody = SKPhysicsBody(texure: plane.texture!, size: plane.size) 

Aber eine gute Möglichkeit zu wählen, ist es: Wenn Sie möchten, dass Ihr Spiel reibungslos auf vielen verschiedenen Geräten läuft, stellen Sie nicht sicher, dass die Physik Berechnungen zu kompliziert werden. Mit anderen Worten, wenn Sie viele Objekte um Ihr Flugzeug haben, deren physisches Verhalten sich bewegt und miteinander kollidiert, können Sie vereinfachte Formen verwenden, um mit der Physik effizienter umzugehen, besonders wenn eine Form schon sehr wie ein Rechteck oder ein Rechteck aussieht Kreis.

+0

ok Also habe ich diese Codezeile zuvor mit der Textur verwendet, aber wenn es irgendetwas berührt meine Textur beginnt zu drehen, ist da eine Möglichkeit, das Flugzeug bei einer Kollision stationär zu positionieren, damit es sich nicht dreht, bleibt beim Start gleich. @Alessandro Ornano – shane

+0

Sie könnten skView.showPhysics = true aktivieren, um zu sehen, ob diese Größen über Physik-Körper korrekt sind. –

Verwandte Themen