Swift 使用粒子效果或动画sks文件创建填充字母

Swift 使用粒子效果或动画sks文件创建填充字母,swift,sprite-kit,Swift,Sprite Kit,我有一个单颗星的.png图像。我想用这个图像来创建充满星星的字母动画。这就是我想做的(但恒星在这里面会有点像动画,我想这可以通过粒子效果来实现): 我可以为每个字母使用几个sks文件,然后将它们加载到一个更大的场景中吗?此外,如果我只是想用几颗星的静态纹理填充标签节点,是否有其他方法可以做到这一点?不理想,但很容易实现: override func didMove(to view: SKView) { if let nodeToMask = SKEmitterNode(fil

我有一个单颗星的.png图像。我想用这个图像来创建充满星星的字母动画。这就是我想做的(但恒星在这里面会有点像动画,我想这可以通过粒子效果来实现):


我可以为每个字母使用几个sks文件,然后将它们加载到一个更大的场景中吗?此外,如果我只是想用几颗星的静态纹理填充标签节点,是否有其他方法可以做到这一点?

不理想,但很容易实现:

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来帮助实现周围的发光效果stars@Knight0fDragon谢谢你的提示。我认为这是相当具体的,因为我指的是一种做这件事的方法,我正试图确定如何做到这一点。也许我应该编辑以反映我正在考虑为每个字母创建单独的动画场景,然后在不使用labelNode的情况下加载这些字母?编辑:我在上面编辑过。如果你可以显示你尝试过的代码,并且可以显示出调整的特定需求,这可能会起作用,但是如果你问的问题可能会产生很多可能的答案,那么它就会被归类为太“广泛”。就像在本例中一样,一些答案可能是使用X/Y库,而像我这样的其他人会说从字体中获得CGPath。我喜欢使用CGPath方法,因为你可以使用SKAction让星星沿着路径移动,SKShader将是一个简单的发光类型着色器,我相信你可以在网上找到somewhere@Knight0fDragon好吧,这很公平。我会尝试一下,如果我有更具体的问题,我会带着一个更具体的问题回来。谢谢。为什么这不理想?我觉得不错。是不是效率低下。。。或者?因为粒子没有超出遮罩(文本)的边界。但这取决于你。如果您对此效果满意,那么只需调整发射器,看看它能为您提供什么。关于性能。。。我认为这是可以做到的。与节点相比,粒子是轻量级的。当然,测试一下,看看你能走多远。