抱歉,这听起来太原始了。我真的不知道如何等待SKAction在一定范围内工作。我看过几篇文章,但据我所知,他们并没有清楚地解释如何计算我的范围。例如,我看到了以下范围:

SKAction.wait(forDuration: 2.5, withRange: 3.0),  //Wait between 1.0 and 4.0 seconds
SKAction.wait(forDuration: 0.65, withRange: 0.7),//Wait between 0.3 and 1.0 seconds


我不确定如何协调以上内容以计算1.0到2.0秒到0.2到0.8秒之间的等待时间。

最佳答案

forDuration时间是操作的平均时间。 withRange时间给出了forDuration时间两侧的容差。

withRange时间除以2,然后从forDuration时间中加/减。

SKAction.wait(forDuration: 2.5, withRange: 3.0),  //Wait between 1.0 and 4.0 seconds
//3.0 / 2 = 1.5; 2.5 - 1.5 = 1.0; 2.5 + 1.5 = 4.0

SKAction.wait(forDuration: 0.65, withRange: 0.7),//Wait between 0.3 and 1.0 seconds
//0.7 / 2 = 0.35; 0.65 - 0.35 = 0.3; 0.65 + .035 = 1.0


因此,如果您希望等待时间介于1.0到2.0秒之间,请使用

SKAction.wait(forDuration: 1.5, withRange: 1.0)


对于0.2到0.8秒之间的时间,请使用

SKAction.wait(forDuration: 0.5, withRange: 0.6)


计算forDuration和withRange值的一般公式是:

forDuration = t_min + (t_max - t_min) / 2
withRange = (t_max - t_min)

10-08 03:13