由于我要自学BSP,因此我正在将this开发教程中的ActionScript代码转换为快速内容。我遇到了我不太了解的代码。
var splitH:Boolean = FlxG.random() > 0.5;
以某种方式,他们将整数转换为布尔值。这条线的快速等效量是多少?这对我来说没有任何意义。他们还如何将随机值转换为布尔值? Swift不允许这种“杂交”。
到目前为止,这是我的尝试:
var splitH = Int(arc4random_uniform(2) + 1)
var splitB = false
我将这条线分成两个值,因为我不知道如何将其作为一行。这是正确的方法吗?
这不起作用:
var splitH:Bool = Int(arc4random_uniform(2) + 1)
答案 0 :(得分:1)
您也可以在此处使用三元运算符。
类似
var splitH = arc4random_uniform(100) > 50 ? true : false
或者简单地
var splitH = arc4random_uniform(100) > 50
答案 1 :(得分:0)
N.B .:假设FlxG.random()
返回0.0
和1.0
之间的均匀随机数。如果它具有不同的分布,则将无法正常工作,
如果我们谈论的是4.2之前的Swift,那么您的代码就等同于:
let splitH: Bool = arc4random_uniform(2) == 1
在Swift 4.2+
中,您可以只使用以下内容:
let splitH: Bool = Double.random(in: 0.0 ..< 1.0) > 0.5