我有一个生成然后向左移动(拉动)的墙,如果我能以某种方式使它变得越来越快,我就会好奇。这可能吗?
以下是我用来拉动"墙的代码":
func startMoving() {
let moveLeft = SKAction.moveByX(-300, y: 0, duration: 0.35)
runAction(SKAction.repeatActionForever(moveLeft))
}
如果您需要知道,这就是生成墙壁的原因:
var generationTimer: NSTimer?
func startGeneratingWallsEvery(seconds: NSTimeInterval) {
generationTimer = NSTimer.scheduledTimerWithTimeInterval(seconds, target: self, selector: "generateWall", userInfo: nil, repeats: true)
这行代码是启动生成器的原因
wallGenerator.startGeneratingWallsEvery(0.5)
一切正常,但我想知道如何制作它所以它开始慢,然后加快加速(使其更难)。
答案 0 :(得分:0)
一种选择是在动作持续时间内创建一个变量,并保持一个计数器,每次拉动一个墙时都会递增。移动了一定数量的墙后(本例中为5),可以将持续时间减少一定量。
var duration: NSTimeInterval = 0.35
var counter: NSUInteger = 0
func startMoving(duration: NSTimeInterval) {
let moveLeft = SKAction.moveByX(-300, y: 0, duration: duration)
runAction(SKAction.repeatActionForever(moveLeft))
counter += 1
if counter % 5 == 0 {
duration -= 0.01
}
}
我不确定如果SKAction持续时间为负值会发生什么,所以你可能需要防范。