2016-09-16 4 views
0

Ich arbeite gerade an einem Magnetfeld in meinem Sprite Kit-Spiel. Hier ist der Code für die Initialisierung:Sprite-Kit: Wie man einen SKFieldNode visualisiert

private func initMagneticField(_ object: TileMapObjectMagneticField) { 
     let field = SKFieldNode.magneticField() 
     field.strength = 0.75 
     field.position = object.location 
     field.region = SKRegion(size: CGSize(width: 320.0, height: 320.0)) 
     field.categoryBitMask = Globals.Categories.magneticField.rawValue 
     stage?.addChild(field) 
    } 

Das Magnetfeld so weit funktioniert, aber ich bin nicht sicher, wie die Region Eigenschaft des SKFieldNode Objekts zu positionieren.

Einschalten physikalische Visualisierung nicht angezeigt nicht den region: SKRegion noch der Feldknoten selbst und die region property hat weder size noch position Eigenschaften:

self.skView.showsPhysics = true 

Wie Sie das Feld visualisieren selbst oder zumindest die region property für das Debuggen Zwecke?

+0

@ 0x14 1E: Cool - danke! – salocinx

Antwort

1

ein Kind hinzufügen: field.addChild(SKSpriteNode(color:SKColor.red, size:CGSize(width: 320.0, height: 320.0)))

hinzufügen Alternativ kann das folgende in-View-Controller

Swift:

skView.showsFields = true 

ObjC:

+0

Ich bekomme "Wert vom Typ 'SKRegion?" hat keine Mitgliedsgröße. Aber ich benutze jetzt die Größe von der Initialisierung des SKFieldNode und es funktioniert. – salocinx

+0

ok, ich war mir nicht sicher, ob du es lesen kannst oder nicht – Knight0fDragon

+0

Btw das Magnetfeld zieht mein Raumschiff schon an, bevor es sich mit der Region überschneidet. Laut Apples Dokument: "Der Physikkörper befindet sich innerhalb der Region des Feldknotens (siehe Region)." das sollte nicht der Fall sein, oder? Ist es vielleicht mit der Eigenschaft "Ladung" des Physikkörpers meines Raumschiffs verbunden? (Die Dokumente sind ein wenig unklar darüber ..) – salocinx

Verwandte Themen