我已经在一些地方看到,更改SKAction的speed
变量会改变速度;但是,这对我来说似乎没有用。
- (void)startAnimating {
SKAction *moveDown = [SKAction moveByX:0 y:-[CAUtilities screenSize].height duration:self.animationDuration];
[self setMoveDownAction:[SKAction repeatActionForever:moveDown]];
[self runAction:self.moveDownAction];
}
- (void)incAnimationSpeedBy:(CGFloat)aFloat {
self.moveDownAction.speed += 0.5;
NSLog(@"%f", self.moveDownAction.speed);
}
在self.moveDownAction.speed
调用中看到的NSLog
的实际值发生了变化,但实际动画没有变化。
点击屏幕后我会调用incAnimationSpeedBy:
,因此使用带有SKAction
的{{1}}序列将无法满足我的需求。
我试过了:
runBlock
作为实例变量。moveDown
属性而不是duration
。感谢任何帮助,谢谢。
答案 0 :(得分:0)
问题是当我应该更改父SKAction
上的速度时,我试图改变不同SKSpriteNode
个对象的速度。
- (void)startAnimating {
SKAction *moveDown = [SKAction moveByX:0 y:-[CAUtilities screenSize].height duration:3.0];
[self runAction:[SKAction repeatActionForever:moveDown]];
}
- (void)incAnimationSpeedBy:(CGFloat)aFloat {
if (self.speed + aFloat < kMaxSpeed)
self.speed += aFloat;
}