我有一个包含8 CGPoints
的数组:
let easyArray = [CGPointMake(0,0), CGPointMake(126.6,0), CGPointMake(253.4,0), CGPointMake(0,197.5), CGPointMake(126.7,197.5), CGPointMake(253.4,197.5), CGPointMake(0,395), CGPointMake(126.7,395), CGPointMake(253.4,395)]
然后我有一个使用随机函数移动到其中一个点的对象:
//Moving the object
let easyPos = randomInt(0,8)
let moveSelector = SKAction.moveTo(easyArray5s[easyPos], duration: 0)
easySelector5s.runAction(moveSelector)
//Random Function
func randomInt(min: Int, max:Int) -> Int {
return min + Int(arc4random_uniform(UInt32(max - min + 1)))
}
我遇到的问题是,有时对象会移动到一个位置,然后再次停留在同一位置。换句话说,相同的位置将一个接一个地使用两次。我怎样才能做到这一点,以免发生这种情况。我正在使用swift。
答案 0 :(得分:1)
将选定的点移动到数组的末尾(最后一个点移动到所选位置 - 即切换它们)。并且不要在下一个随机选择中包含最后一个点(只需从arc4random_uniform中删除+1)。
答案 1 :(得分:0)
好像你想做 -
return min + Int(arc4random_uniform(UInt32(max - min))) + 1