2016-10-29 2 views
1

Fragen Sie einfach den Titel fragt, ich frage mich, ob das überhaupt möglich ist. Die meisten Beispiele für den SKCropNode verwenden eine Textur oder eine Form. Was ich erreichen möchte, ist eine Maske einer benutzerdefinierten Form. Lass es mich wissen, wenn es einen Weg gibt!Können Sie einen SKSpriteNode mit einem anderen SKSpriteNode maskieren

+0

Was ist ein SKMaskNode? Meinst du SKCropNode? – Knight0fDragon

+0

Ja das möchte ich sagen, meine Entschuldigung. Bearbeitet. – Lyres

+1

ok, Sie können einen beliebigen SKNode als Maske verwenden, unabhängig davon, wie das endgültige Ergebnis Ihrer Maske aussieht, wenn das Alpha <.5 abgeschnitten ist (es sei denn, es handelt sich um einen anderen Crop-Knoten, dann erhalten Sie einen Alpha-Level-Cropping, was sehr praktisch ist) – Knight0fDragon

Antwort

0

Sie können einen Knoten maskieren, indem Sie ihm einen untergeordneten Knoten zuweisen, wobei die zPosition des untergeordneten Knotens größer ist als die des übergeordneten Knotens. Und dann müssten Sie natürlich den Kindknoten korrekt über dem Elternknoten positionieren - aber das sollte einfach sein, da sich die Position des Kindknotens relativ zum Elternknoten befindet (dh wenn der Elternknoten die Position (25, 30) hat) in der Szene, und Sie setzen child.position = CGPoint (x: 5, y: 0), wäre die Position des Kindes in der Szene (30, 30)). Wenn sich der übergeordnete Knoten bewegt, bewegt sich auch der untergeordnete Knoten mit.

+0

Dies ist keine Maske, dies ist eine Überlagerung. Masken sind in diesem Fall Daten, die für bitweise Operationen verwendet werden. Z.B. SKCropNodes, jedes Pixel mit Alpha <0,5 in einer Maske wird auf dem angegebenen Knoten abgeschnitten – Knight0fDragon

+0

Ja, ich möchte eine Maske mit dem SKCropNode verwenden und keinen Knoten über dem anderen platzieren. – Lyres

Verwandte Themen