2016-01-03 17 views
5

Jak narysować dziurę w prostokącie? Chcę narysować prostokąt, który ma pustą dziurę w środku, a tło może być wyświetlane.Narysuj otwór w prostokącie za pomocą SpriteKit?

Używam SKShapeNode do utworzenia prostokąta, ale nie mam pojęcia, jak zrobić otwór (kółko) w środku.


To jest to, w czym uruchamiam twój kod, ale moje koło nie jest puste, krąg jest czarny, chcę, żeby był pusty. Czy jest jakiś błąd, o którym nie wspomniałem? enter image description here

+0

Spójrz na SKCropNode – Maarten

+0

Dzięki ~ działa SKCropNode !! –

+1

@ Yan-JenHuang Hej, mógłbyś podzielić się swoim kodem z SKCropNode? Dzięki – Segev

Odpowiedz

2

Oto kod.

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

Jak widać utworzyć SKEffectNode. Następnie dodaję do niego prostokąt. Wreszcie dodaję dziurę do prostokąta.

+1

Nadal mam tu pewien problem, chcę, żeby krąg był pusty! –

+0

jak korzystać z metody .Subtract? co jest innego, gdy wybieram inny kolor na rect lub krąg –

+0

@ Yan-JenHuang: ops ... pozwól mi to sprawdzić: D –