为随机SKColor分配值

时间:2015-08-31 12:36:17

标签: xcode swift

我有以下代码。

func random() -> CGFloat {
    return CGFloat(arc4random_uniform(100))/100
}

func niceRandomColor() -> SKColor {
  println(random())
  return SKColor(hue: random(), saturation: 1.0, brightness: 1.0, alpha: 1.0)
}

此代码为我生成一个随机颜色,我分配给3个SKNode,每秒随机生成一个由“niceRandomColor()”生成的随机颜色。当我检查println(random())时,它会显示一个介于0.00和0.99之间的数字。

我已经为我的SKNode分配了一个名为“p1.name = random()。description”的名称。我正在尝试将SKNode名称分配给随机生成的颜色。但是,无论出于何种原因,如果颜色产生0.5,我的p1的名称将为0.7或其他。它与产生的颜色不匹配....

这是为什么?感谢

1 个答案:

答案 0 :(得分:1)

每次拨打random()时,您都会要求新号码。

您的println要求提供一个随机数,而您的SKColor初始值设定项会要求另一个。如果您想将特定号码用于多种用途,请将其保存到变量并访问变量而不是新呼叫。

如果您需要访问致电random()的地方以外的地方,可以从SKColor获取。例如:

var clr = niceRandomColor()

var hue: CGFloat = 0.0
var saturation: CGFloat = 0.0
var brightness: CGFloat = 0.0
var alpha: CGFloat = 0.0

if clr.getHue(&hue, saturation: &saturation, brightness: &brightness, alpha: &alpha) {
    println("\(hue)")
} else {
    println("Call failed")
}