【发布时间】:2015-06-15 17:43:54
【问题描述】:
我正在使用 SpriteKit 制作游戏,其中节点在屏幕顶部生成并下降。但是,我希望这些节点以 0.1 到 3 秒之间的随机时间间隔生成。例如,第一个节点在 1.3 秒内生成,下一个节点在 1.8 秒内生成,然后是 2.5 秒,然后是 0.8 秒,以此类推。我不确定如何利用 waitForDuration 函数来做到这一点。我目前拥有的代码是:
let wait = SKAction.waitForDuration(3, withRange: 2)
let spawn = SKAction.runBlock { addTears()
}
let sequence = SKAction.sequence([wait, spawn])
self.runAction(SKAction.repeatActionForever(spawn))
当我尝试运行此代码时,它会冻结我的游戏。我把 addTears() 去掉了,放了一个日志,日志上出现了一个无限循环。我需要知道如何摆脱它。
我的 addTears() 函数的代码是:
func addTears() {
let Tears = SKSpriteNode (imageNamed: "Tear")
Tears.position = CGPointMake(Drake1.position.x, Drake1.position.y - 2)
Tears.zPosition = 3
addChild(Tears)
//gravity
Tears.physicsBody = SKPhysicsBody (circleOfRadius: 150)
Tears.physicsBody?.affectedByGravity = true
//contact
Tears.physicsBody = SKPhysicsBody (circleOfRadius: Tears.size.width/150)
Tears.physicsBody!.categoryBitMask = contactType.Tear.rawValue
Tears.physicsBody!.contactTestBitMask = contactType.Bucket.rawValue
}
【问题讨论】:
标签: swift sprite-kit skspritenode skaction