我有一个涉及两个动作的SKAction序列。 1)根据变量等待时间2)生成对象

SKAction *sequence = [SKAction sequence:@[
                                        wait,
                                        addObject]];

此操作将设置为永远运行。但是,我希望等待时间根据更新变量而改变,但是它保持不变,因为永远运行时它不会采用新变量
[self runAction:[SKAction repeatActionForever:sequence]];

我如何使其稳定增加值,从而增加对象生成的速度?

谢谢

最佳答案

有两种解决方案:

  • 每次需要时,请重新创建序列或至少重新创建等待操作。动作应该被丢弃并经常重复使用。
  • 如果这带来了性能问题,并且已经对序列进行了引用,则还可以更改其速度变量。这应该相应地更改等待时间,即,如果速度为0.5,则等待时间应加倍。

  • 解决方案1的示例:
    CGFloat waitDuration = (value to be determined by you);
    SKAction *sequence = [SKAction sequence:@[
                                            [SKAction waitForDuration:waitDuration],
                                            addObject]];
    

    解决方案2的示例:
    SKAction *sequence = [SKAction sequence:@[
                                            wait,
                                            addObject]];
    
    // half the speed, double the wait time
    sequence.speed = 0.5;
    
    // or if you need to derive speed from waitDuration (which must be >0.0)
    sequence.speed = (1.0 / waitDuration);
    

    如果序列不受速度影响,请尝试设置wait操作的速度。

    10-04 21:34