繁体   English   中英

iOS在重复动作中更改SKAction速度

[英]iOS Changing SKAction speed in repeating action

我已经读过几篇文章了,改变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);
}

NSLog调用所示, self.moveDownAction.speed的实际值self.moveDownAction.speed更改,但实际动画不会更改。

我有incAnimationSpeedBy:轻按屏幕时会被调用,因此将SKAction序列与runBlock配合使用将无法满足我的需求。

我试过了:

  • 将初始moveDown作为实例变量。
  • 将永远重复动作作为实例变量(如上所示)。
  • 更改duration属性而不是speed

任何帮助表示赞赏,谢谢。

问题是我本该在父SKSpriteNode上更改速度时,尝试更改不同SKAction对象上的速度。

- (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;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM