我是Swift和SpritKit的新手,并且在我的游戏中遇到了一些问题。
在我的代码didMoveToView(view: SKView) { }
部分中,我调用下面的语句来填充屏幕上的怪物。在我的func addMonster() { }
中
然后怪物动画从右侧移动到屏幕的左侧。一旦它们离开屏幕的另一侧,精灵就会被移除。
代码A
runAction(SKAction.repeatActionForever(
SKAction.sequence([
SKAction.runBlock(addMonster),
SKAction.waitForDuration(1.0),SKAction.
])
))
在添加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]))
上面的所有代码都运行良好。
当用户杀死了X量的怪物时,我希望屏幕上的所有其他怪物都消失并停止产卵。
我的问题是,我如何a)停止产生怪物的代码A和b)我如何获取视图中的任何怪物,被删除?
谢谢,
Ryann
答案 0 :(得分:10)
运行操作时,请使用
monster.runAction(SKAction.sequence([actionMove, actionMoveDone]), withKey: "actionA")
然后用
取消它monster.removeActionForKey("actionA")