首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用SKAction调用函数

用SKAction调用函数
EN

Stack Overflow用户
提问于 2015-07-28 19:02:47
回答 1查看 2.5K关注 0票数 1

我有两个功能,可以在GamePlay场景中生成敌人。我试着每隔一秒钟用NSTimers给他们打电话,但当应用程序失去焦点时,定时器会继续运行,并产生数百个敌人。

我读到SKActions会自动暂停,所以我尝试实现一个,但是我收到了一个错误:

不能使用“(repeatActionForever!)”类型的参数列表调用“SKAction”

不能使用类型的参数列表((),queue:(Double))调用'runBlock‘

代码:

代码语言:javascript
复制
override func didMoveToView(view: SKView) {

superblockRandomizer = NSTimeInterval(arc4random_uniform(5) + 5)
runAction(SKAction.repeatActionForever(SKAction.sequence(SKAction.runBlock(spawnEnemies(), queue: (0.3)))))
runAction(SKAction.repeatActionForever(SKAction.sequence(SKAction.runBlock(spawnSuperBlocks(), queue: (superblockRandomizer)))))
}

我想运行的两个函数是spawnEnemies和spawnSuperBlocks。任何帮助都将不胜感激!

编辑:当场景移动到视图时,它就会产生超级块。这是我为超级块准备的代码

代码语言:javascript
复制
    let spawnSuperBlock = SKAction.sequence([SKAction.runBlock(spawnSuperBlocks), SKAction.waitForDuration(superblockRandomizer)])
    runAction(SKAction.repeatActionForever(spawnSuperBlock))

它难道不应该等待至少superblockRandomizer时间才能产卵吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-28 19:10:48

有些SKAction方法只执行时间延迟。例如,您可以创建一个包含您希望执行的操作的SKAction.sequence,以及延迟0.3秒:

代码语言:javascript
复制
let action = SKAction.sequence([SKAction.runBlock(spawnEnemies), SKAction.waitForDuration(0.3)])

然后,就像你以前试过的那样,你可以让动作永远运行下去:

代码语言:javascript
复制
runAction(SKAction.repeatActionForever(action))

结果是一个无休止的spawnEnemies,每0.3秒运行一次。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31684996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档