如何将这两个对象的持续时间随机化?
func start() {
let ajusdtedDuration = NSTimeInterval (frame.size.width / kDefaultXToMovePerSecond)
let moveLeft = SKAction.moveByX(-frame.size.width/2, y: 0, duration: ajusdtedDuration/2)
let resetPosition = SKAction.moveToX(0, duration: 0)
let moveSequence = SKAction.sequence([moveLeft, resetPosition])
runAction(SKAction.repeatActionForever(moveSequence))
}
func stop() {
removeAllActions()
}
这是另一个。另外,我怎样才能使他们的持续时间同步?
func startMoving() {
let moveLeft = SKAction.moveByX(-kDefaultXToMovePerSecond, y: 0, duration: 1)
runAction(SKAction.repeatActionForever(moveLeft))
}
答案 0 :(得分:0)
您可以创建随机数并在您的持续时间内使用它。
该功能可能如下:
func randomBetweenNumbers(firstNum: CGFloat, secondNum: CGFloat) -> CGFloat{
return CGFloat(arc4random()) / CGFloat(UINT32_MAX) * abs(firstNum - secondNum) + min(firstNum, secondNum)
}
要同步这两个操作,您不需要做太多事情。因为如果您在彼此之后调用操作,它们将同时启动。只需调用该函数一次,并将其用于两个函数:
//Number between 0 and 10
let randomTime = randomBetweenNumbers(0, secondNum: 10)
然后你使用它。最好的方法是将它用作函数中的参数:
func startMoving(randomTime: CGFloat) {
let moveLeft = SKAction.moveByX(-kDefaultXToMovePerSecond, y: 0, duration: randomTime)
runAction(SKAction.repeatActionForever(moveLeft))
}
如您所见,我在持续时间内使用randomTime
参数:
startMoving(randomTime)
start()
- 函数中的相同内容:
func start(randomTime:CGFloat)