2016-01-03 21 views
5

Wie zeichne ich ein Loch in einem Rechteck? Ich möchte ein Rechteck zeichnen, das ein leeres Loch enthält und der Hintergrund kann angezeigt werden.Mit SpriteKit ein Loch in ein Rechteck zeichnen?

Ich benutze SKShapeNode, um ein Rechteck zu erstellen, aber ich habe keine Ahnung, wie man ein Loch (Kreis) darin macht.


Dies ist, was ich Ihren Code ausführen, aber mein Kreis nicht leer ist, der Kreis schwarz ist, will ich es leer sein. Gibt es einen Fehler, den ich nicht erwähnt habe? enter image description here

+0

Werfen Sie einen Blick auf SKCropNode – Maarten

+0

Danke ~ SKCropNode funktioniert !! –

+1

@ Yan-JenHuang Hey, könnten Sie bitte Ihren Code mit SKCropNode teilen? Danke – Segev

Antwort

2

Hier ist der Code.

import SpriteKit 

class GameScene: SKScene { 

    override func didMove(to view: SKView) { 

     let effect = SKEffectNode() 
     addChild(effect) 

     let rect = SKShapeNode(rect: CGRect(x: 0, y: 0, width: 400, height: 200)) 
     rect.fillColor = .green 
     effect.addChild(rect) 


     let hole = SKShapeNode(circleOfRadius: 40) 
     hole.position = CGPoint(x: 200, y: 100) 
     hole.fillColor = .white 
     hole.blendMode = .subtract 
     rect.addChild(hole) 

    } 
} 

enter image description here

Wie Sie erstelle ich einen SKEffectNode sehen kann. Dann füge ich das Rechteck hinzu. Schließlich füge ich das Loch dem Rechteck hinzu.

+1

Ich habe immer noch ein Problem hier, ich möchte den Kreis leer sein! –

+0

Wie wird die .Subtract-Methode verwendet? was ist das anders, wenn ich andere Farbe zu rect oder Kreis wählen –

+0

@ Yan-JenHuang: ops ... lassen Sie mich überprüfen: D –

Verwandte Themen