我有两个从我的屏幕顶部相互平行的点,它们将与底部的两个可以随触摸旋转的圆相匹配。我让他们产生这样的:如何逐渐加速下降节点随着时间的推移?
class GameScene: SKScene {
override func didMoveToView(view: SKView) {
runAction(SKAction.repeatActionForever(
SKAction.sequence([
SKAction.runBlock(generateDots),
SKAction.waitForDuration(1.0)])))
}
func generateDots() {
let count = 2
let index=Int(arc4random_uniform(UInt32(count)))
let dots = SKSpriteNode(imageNamed: "Color\(index+1)")
dots.physicsBody = SKPhysicsBody(circleOfRadius: 10)
dots.physicsBody?.dynamic = true
dots.physicsBody?.affectedByGravity = false
for i in 0..<2 {
dots.physicsBody?.categoryBitMask = UInt32(0x1 << index)
dots.physicsBody?.contactTestBitMask = UInt32(0x1 << index)
}
addChild(dots)
dots.size = CGSizeMake(45, 45)
dots.position = CGPointMake(150, 400)
dots.runAction(
SKAction.moveByX(0, y: -900,
duration: NSTimeInterval(11.5)))
}
}
有什么办法来逐渐加快他们要么正在下降的速度有多快或逐步改变waitForDuration
,这样随着时间的推移它会产生一个节点,每3秒,然后2秒,然后1秒等等?
这可能是你要找的东西http://stackoverflow.com/questions/34624292/change-time-interval-in-skaction-waitforduration-as-game-goes-on – 0x141E
非常感谢你!还有一种方法可以加速节点吗? – KeepItSimple
为“moveByX”动作的持续时间参数定义一个变量,并在“递归”方法中减少该变量。 – 0x141E