2016-07-12 13 views

Antwort

0

Ein SKShapeNode Objekt zeichnet eine Form, die durch einen Grafikkreis-Kern definiert.

Der Grafikpfad ist eine Sammlung von geraden Linien und Kurven, die entweder offene oder geschlossene Unterpfade definieren können. Sie können ein separates Rendering-Verhalten für den gefüllten und den markierten Teil des Pfads angeben. Jeder Teil kann entweder mit einer Volltonfarbe oder einer Textur gerendert werden; Wenn Sie komplexere Effekte rendern müssen, können Sie auch einen benutzerdefinierten Shader verwenden.

Formknoten sind nützlich für Inhalte, die nicht einfach in einfache texturierte Sprites zerlegt werden können. Form-Knoten sind auch sehr nützlich für Aufbau und Anzeige von Debugging-Informationen auf Ihrem Spiel Inhalt. Die SKSpriteNode-Klasse bietet jedoch eine höhere Leistung als diese Klasse. Verwenden Sie daher Shape-Knoten sparsam.

Das Erstellen eines Formknotens aus einem Pfad zeigt ein Beispiel zum Erstellen eines Formknotens. Das Beispiel erstellt einen Kreis mit einem blauen Inneren und einem weißen Umriss . Der Pfad wird erstellt und an die Pfadeigenschaft des Formknotens angehängt.

Sie weitere Details zum Apple offiziellen guide

Dies ist die tatsächlich verfügbaren init Methoden aus den Quellen finden:

/* Create a Shape Node using a CGPathRef, optionally centered at the Node's origin. */ 
    @available(iOS 8.0, *) 
    public convenience init(path: CGPath) 
    @available(iOS 8.0, *) 
    public convenience init(path: CGPath, centered: Bool) 

    /* Create a Shape Node representing a Rect. */ 
    @available(iOS 8.0, *) 
    public convenience init(rect: CGRect) 

    /* Create a Shape Node representing a rect centered at the Node's origin. */ 
    @available(iOS 8.0, *) 
    public convenience init(rectOfSize size: CGSize) 

    /* Create a Shape Node representing a rounded rect with a corner radius */ 
    @available(iOS 8.0, *) 
    public convenience init(rect: CGRect, cornerRadius: CGFloat) 

    /* Create a Shape Node representing a rounded rect with a corner radius centered at the Node's origin. */ 
    @available(iOS 8.0, *) 
    public convenience init(rectOfSize size: CGSize, cornerRadius: CGFloat) 

    /* Create a Shape Node representing an circle centered at the Node's origin. */ 
    @available(iOS 8.0, *) 
    public convenience init(circleOfRadius radius: CGFloat) 

    /* Create a Shape Node representing an Ellipse inscribed within a Rect */ 
    @available(iOS 8.0, *) 
    public convenience init(ellipseInRect rect: CGRect) 

    /* Create a Shape Node representing an Ellipse inscribed within a Rect centered at the Node's origin. */ 
    @available(iOS 8.0, *) 
    public convenience init(ellipseOfSize size: CGSize) 

    /* Create a Shape Node representing an a series of Points interpreted as line segments */ 
    @available(iOS 8.0, *) 
    public convenience init(points: UnsafeMutablePointer<CGPoint>, count numPoints: Int) 

    /* Create a Shape Node representing a smoothed spline that passes through a series of Points */ 
    @available(iOS 8.0, *) 
    public convenience init(splinePoints points: UnsafeMutablePointer<CGPoint>, count numPoints: Int) 

Wie Sie Ihnen nicht Quadrate nur erstellen können sehen, sondern auch unregelmäßiges Polygon unter Verwendung beispielsweise einer benutzerdefinierten CGPath.

Ein typisches Beispiel ist dies unter:

let shape = SKShapeNode() 
shape.path = UIBezierPath(roundedRect: CGRect(x: -128, y: -128, width: 256, height: 256), cornerRadius: 64).CGPath 
shape.position = CGPoint(x: CGRectGetMidX(frame), y: CGRectGetMidY(frame)) 
shape.fillColor = UIColor.redColor() 
shape.strokeColor = UIColor.blueColor() 
shape.lineWidth = 10 
addChild(shape) 

P. S.: Konnte einige Fehler im Speicher verursacht durch SKShapeNode während der Entwicklung auftreten, aber nichts, das Sie verhindern würde, ein Spiel zu prüfen, zu schaffen und zu veröffentlichen, verwenden viele Spiele auf dem Markt SKShapeNode ohne Probleme, Sie müssen einfach vorsichtiger sein Code ohne Missbrauch davon.

0

Im Moment ist Square Ihre einzige Option. Vielleicht in der nächsten Version werden sie mehr Formen erlauben, aber von jetzt an würde ich SKShapeNode verwenden, weil sie extrem buggy sind

Quelle: XCode Szene-Editor, nur Option ist quadratisch, keine der Registerkarten ermöglichen dies zu ändern oder unterklassifiziert werden

+0

Woher kommt die Quelle? Verknüpfung? –

+0

Welche Quelle?Öffnen Sie den xcode Spritekit-Szeneneditor und schauen Sie selbst. – Knight0fDragon

+0

Ich missverstanden. Ich dachte, als du "Quelle:" gesagt hast, hast du jemanden zitiert. Sie sagten, die Quelle ist der Szeneneditor selbst und Sie haben Recht –