這可以使用SKAction
類來完成。將以下方法添加到您的SKScene
子類中,並在希望重力開始增加時調用它。我已經包含了Objective-C和Swift版本。
目的-C:
- (void)startGravityIncrease {
SKAction *blockAction = [SKAction runBlock:^{
CGVector gravity = self.physicsWorld.gravity;
gravity.dx += 0.5;
self.physicsWorld.gravity = gravity;
}];
SKAction *waitAction = [SKAction waitForDuration:5];
SKAction *sequenceAction = [SKAction sequence:@[waitAction, blockAction]];
SKAction *repeatAction = [SKAction repeatActionForever:sequenceAction];
[self runAction:repeatAction];
}
夫特:
func startGravityIncrease() {
let blockAction = SKAction.runBlock {() -> Void in
self.physicsWorld.gravity.dx += 0.5
}
let waitAction = SKAction.waitForDuration(5)
let sequenceAction = SKAction.sequence([waitAction, blockAction])
let repeatAction = SKAction.repeatActionForever(sequenceAction)
self.runAction(repeatAction)
}
[Spritekit - 創建計時器]的可能重複(http://stackoverflow.com/questions/23978209/spritekit-creating- a-timer) - 使用Sprite Kit提供的計時方法,**不要**使用NSTimer! – LearnCocos2D 2014-11-09 10:05:33