Xcode SpriteKit - 删除Sprite并停止动作 - repeatActionForever

Rya*_*786 5 xcode sprite ios swift ios8

我是Swift和SpritKit的新手,对我的游戏有一些问题.

在我didMoveToView(view: SKView) { }的代码部分中,我调用下面的语句来填充屏幕上的怪物.在我func addMonster() { } 的怪物中,然后动画从右侧移动到屏幕的左侧.一旦他们离开屏幕的另一侧,精灵就会被移除.

代码A.

    runAction(SKAction.repeatActionForever(
        SKAction.sequence([
            SKAction.runBlock(addMonster),
            SKAction.waitForDuration(1.0),SKAction.
            ])
        ))
Run Code Online (Sandbox Code Playgroud)

在添加Mons†er功能中,我调用以下代码将Monster移动到屏幕上.

    let actualDuration = random(min: CGFloat(6.0), max: CGFloat(10.0))
    let actionMove = SKAction.moveTo(CGPoint(x: -monster.size.width/2, y: actualY), duration: NSTimeInterval(actualDuration))
    let actionMoveDone = SKAction.removeFromParent()
    monster.runAction(SKAction.sequence([actionMove, actionMoveDone]))
Run Code Online (Sandbox Code Playgroud)

上面的所有代码都运行正常.

当用户杀死了X量的怪物时,我希望屏幕上的所有其他怪物都消失并停止产卵.

我的问题是,我如何a)停止产生怪物的代码A和b)如何获取视图中的任何怪物,被删除?

谢谢,

Ryann

jon*_*our 10

运行操作时,请使用

monster.runAction(SKAction.sequence([actionMove, actionMoveDone]), withKey: "actionA")
Run Code Online (Sandbox Code Playgroud)

然后取消它

monster.removeActionForKey("actionA")
Run Code Online (Sandbox Code Playgroud)