2017-08-20 1 views
0

Gibt es eine Möglichkeit, einen kreisförmigen SKSpriteNode mit Textur zu zeichnen? Oder zeichne alternativ einen SKShapeNode mit Textur?Zeichnen Sie einen kreisförmigen SKSpriteNode mit Textur?

+1

Sie können nur die Textur gerundet machen, nicht wahr? – Sweeper

+0

Die Textur wird tatsächlich von den Benutzern vor Ort ausgewählt, sodass sie nicht rund sein können. –

+0

Was bedeutet "mit Textur"? Es gibt mehrere Möglichkeiten, ein zirkuläres Sprite zu erstellen. – 0x141E

Antwort

0

Es ist zu beachten, dass alle Bilder Rechteck/Quadrate sind. Was wir rund sehen, ist, wie wir farbige Pixel zeigen: Was außerhalb des Kreises ist, ist transparent und was drin ist, ist der farbige Teil.

  1. wir brauchen einen Kreis
  2. wir es Textur
  3. wir es zu der Szene hinzufügen
  4. wir eine neue Textur aus dieser Form Knoten zurück, die wir gerade in der Szene hinzugefügt
  5. wir machen ein neuer Sprit diese neue Textur mit
  6. wir das Sprit in die Szene

    let shape: SKShapeNode = SKShapeNode(circleOfRadius: 50) 
    shape.name = "shape" 
    shape.lineWidth = 1 // this way we see that this is a circle 
    shape.fillColor = .white // to see the true colors of our image 
    //shape.strokeColor = .white 
    //shape.glowWidth = 0 
    shape.fillTexture = SKTexture(imageNamed:"myImage") 
    shape.position = CGPoint(x: 0, y:200) 
    self.addChild(shape) 
    
    let newTexture: SKTexture = (self.view?.texture(from: self.childNode(withName: "shape")!))! 
    let sprite: SKSpriteNode = SKSpriteNode(texture: newTexture) 
    self.addChild(sprite) 
    
    shape.removeFromParent() 
    
  7. hinzufügen
+0

Sie können eine Textur mit 'shape' erstellen, ohne sie einer Szene hinzuzufügen, indem Sie' view? .texture (from: shape) 'anklicken. – 0x141E

Verwandte Themen