我试图在Y轴上的不同位置添加许多节点。问题在于,由于某种原因,这些职位总是(0:0)。
我已经完成了与此相关的几乎所有问题,但无法找到答案。
我在最大值和最小值之间生成随机数:
func randomBetweenTwoNumbers(firstNumber: CGFloat, secondNumber: CGFloat) -> CGFloat{
return CGFloat(arc4random())/CGFloat(UINT32_MAX) * abs(firstNumber - secondNumber) + min(firstNumber, secondNumber)
}
现在我试图像这样添加它们:
func addLeftSparks(){
let randomNumber = Helper().randomBetweenTwoNumbers(firstNumber: leftSparkMinimumY, secondNumber: leftSparkMaximumY)
print(randomNumber)
let positions = [CGPoint(x: -275, y: randomNumber), CGPoint(x: -275, y: randomNumber)]
print(positions) // this is (0:0)
positions.enumerated().forEach { (index, point) in
let spriteNode = SKNode()
spriteNode.position = point
let sprite = SKSpriteNode(imageNamed: "Spark")
sprite.name = "Spark"
spriteNode.addChild(sprite)
}
}
我想在图片中实现的目标:
真的很感激任何帮助。
答案 0 :(得分:2)
您生成了一个随机数,但您使用了两次
let randomNumber = Helper().randomBetweenTwoNumbers(firstNumber: leftSparkMinimumY, secondNumber: leftSparkMaximumY)
print(randomNumber)
let positions = [CGPoint(x: -275, y: randomNumber), CGPoint(x: -275, y: randomNumber)]
位置是相同y的2点,因此您只能看到一个节点。您需要为所需的每个新随机数调用随机数函数。
(我知道你说它是0,0,但我不认为这是对的,所以我忽略了那一部分 - 如果你真的相信这一点,请在打印声明中加入更多信息,以便你知道你不是不被其他一些输出所愚弄)