ない理想的な、しかし、実現するのは簡単:
override func didMove(to view: SKView) {
if let nodeToMask = SKEmitterNode(fileNamed: "firelfies") {
backgroundColor = .black
let cropNode = SKCropNode()
cropNode.position = CGPoint(x: frame.midX, y: frame.midY)
cropNode.zPosition = 1
let mask = SKLabelNode(fontNamed: "ArialMT")
mask.text = "MASK"
mask.fontColor = .green
mask.fontSize = 185
cropNode.maskNode = mask
nodeToMask.position = CGPoint(x: 0, y: 0)
nodeToMask.name = "character"
cropNode.addChild(nodeToMask)
addChild(cropNode)
}
}
私は、コードは自明であると思うが、基本的に、あなただけの作物のノードのマスクとしてテキストを使用すると、あなたはエミッタをマスクします。ここでの結果は次のとおりです。
この実装を持つ事は輝きが文字の境界の外に行っていないということです。
本当に先進的なことをここで求めています。この質問はSOの仕組みとはまったく一致していないので、具体的な回答が得られる特定の質問ではないので、私はそれを閉じるように投票しています。 CGPathを使用してスプライトの移動方法をレイアウトし、SKShaderを使用して星の周りに輝く効果を実現することができます。 – Knight0fDragon
@ Knight0fDragonヒントをお寄せいただきありがとうございます。私はそれを行う方法を参照するとかなり具体的だと思っていましたが、それをどのように見えるかを判断しようとしています。おそらく、私は各文字のために別々のアニメーションシーンを作成し、labelNodeを使わずにそれらの文字をロードしようと考えていることを反映するように編集する必要がありますか? EDITED:私は上で編集しました。 – illuminatedtype
あなたが試したことを示すコードを表示して、微調整する必要があることを示すことができれば、それはうまくいくかもしれませんが、多くの可能な回答をもたらす質問をしているなら、 。この場合のように、いくつかの答えはライブラリX/Yを使用することですが、私のような人はCGPathをフォントから取り除くと言うでしょう。 SKActionを使ってパスに沿って星を動かすことができ、SKShaderはオンラインで見つけられると確信しているシンプルなグローブタイプのシェーダになるので、CGPathアプローチを使用するのが好きです。 – Knight0fDragon