如何添加一个 SKEmitterNode 作为 SKSpriteNode 的子节点然后删除它?

问题描述 投票:0回答:0

如何添加一个 SKEmitterNode 作为 SKSpriteNode 的子节点然后删除它?

当两个物体发生碰撞时,我在 GameScene 的

didBegin
函数中调用以下代码:

    func markStake(theUStake: SKSpriteNode) {
        
        let particleName = "smokeParticle.sks"
        
        if let emitter = SKEmitterNode(fileNamed: particleName) {
            emitter.position = theUStake.position
            theUStake.addChild(emitter)
        }
                
    }   // markStake

稍后,当我重新开始游戏时,我会在我的 GameViewController 中调用以下内容:

    func initAllStakes() {
         
       for theUStake in UStakes {
            theUStake.removeAllChildren()
        }
        
    }   // initAllStakes

markStake
适用于指定的碰撞。

但是在我的

initAllStakes
内调用
func newGame()
不会消除粒子
.sks
.

请注意,UStakes 在我的

AppDelegate
中是全局的:

var UStakes: [SKSpriteNode] = [myU1, myU2, myU3, myU4, myU5]

以及其他地方,例如:

myU2 = SKSpriteNode(imageNamed: U2Img)

任何想法将不胜感激。

removechild addchild skemitternode
© www.soinside.com 2019 - 2024. All rights reserved.