Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift X,Y坐标的随机数发生器_Swift_Random_Numbers_Generator - Fatal编程技术网

Swift X,Y坐标的随机数发生器

Swift X,Y坐标的随机数发生器,swift,random,numbers,generator,Swift,Random,Numbers,Generator,我今天在写代码时,偶然发现我的随机数生成器有一个问题。我正在尝试制作一个发电机,就像《水果忍者》中的发电机一样,我也在用swift写作。以下是我的代码片段: var rand_x = arc4random() var rand_y = arc4random() node!.position = CGPoint(x: rand_x, y: rand_y) 我的问题是我得到了错误: 找不到接受类型为“(x:UInt32,y:UInt32)”的参数列表的类型“CGPoint”的初始值设定项 有什么

我今天在写代码时,偶然发现我的随机数生成器有一个问题。我正在尝试制作一个发电机,就像《水果忍者》中的发电机一样,我也在用swift写作。以下是我的代码片段:

var rand_x = arc4random() 
var rand_y = arc4random()
node!.position = CGPoint(x: rand_x, y: rand_y)
我的问题是我得到了错误:

找不到接受类型为“(x:UInt32,y:UInt32)”的参数列表的类型“CGPoint”的初始值设定项


有什么建议可以解决这个问题吗?谢谢

您需要先将
rand_x
rand_y
转换为
CGFloat
s

node!.position = CGPoint(x: CGFloat(rand_x), y: CGFloat(rand_y))

还可以查看一下
arc4random\u uniform
您需要先将
rand\u x
rand\u y
转换为
CGFloat
s

node!.position = CGPoint(x: CGFloat(rand_x), y: CGFloat(rand_y))

还可以查看一下
arc4random\u uniform
您需要先将
rand\u x
rand\u y
转换为
CGFloat
s

node!.position = CGPoint(x: CGFloat(rand_x), y: CGFloat(rand_y))

还可以查看一下
arc4random\u uniform
您需要先将
rand\u x
rand\u y
转换为
CGFloat
s

node!.position = CGPoint(x: CGFloat(rand_x), y: CGFloat(rand_y))
另外,请看两件事:

  • 您可能需要将位置的最大值限制在某个值,例如屏幕的宽度/高度
  • arc4random返回一个UInt32,CGPoint的初始值设定项接受cgfloat。您需要将UINT32转换为CGfloat
这看起来像:

var rand_x = CGFloat(arc4random_uniform(maxXValue)) // maxXValue is a variable with your maximum possible x value
var rand_y = CGFloat(arc4random_uniform(maxYValue)) // maxYValue is a variable with your maximum possible y value
node!.position = CGPoint(x: rand_x, y: rand_y)
两件事:

  • 您可能需要将位置的最大值限制在某个值,例如屏幕的宽度/高度
  • arc4random返回一个UInt32,CGPoint的初始值设定项接受cgfloat。您需要将UINT32转换为CGfloat
这看起来像:

var rand_x = CGFloat(arc4random_uniform(maxXValue)) // maxXValue is a variable with your maximum possible x value
var rand_y = CGFloat(arc4random_uniform(maxYValue)) // maxYValue is a variable with your maximum possible y value
node!.position = CGPoint(x: rand_x, y: rand_y)
两件事:

  • 您可能需要将位置的最大值限制在某个值,例如屏幕的宽度/高度
  • arc4random返回一个UInt32,CGPoint的初始值设定项接受cgfloat。您需要将UINT32转换为CGfloat
这看起来像:

var rand_x = CGFloat(arc4random_uniform(maxXValue)) // maxXValue is a variable with your maximum possible x value
var rand_y = CGFloat(arc4random_uniform(maxYValue)) // maxYValue is a variable with your maximum possible y value
node!.position = CGPoint(x: rand_x, y: rand_y)
两件事:

  • 您可能需要将位置的最大值限制在某个值,例如屏幕的宽度/高度
  • arc4random返回一个UInt32,CGPoint的初始值设定项接受cgfloat。您需要将UINT32转换为CGfloat
这看起来像:

var rand_x = CGFloat(arc4random_uniform(maxXValue)) // maxXValue is a variable with your maximum possible x value
var rand_y = CGFloat(arc4random_uniform(maxYValue)) // maxYValue is a variable with your maximum possible y value
node!.position = CGPoint(x: rand_x, y: rand_y)
arc4random()
函数返回类型为
UInt32
,但
CGPoint
没有初始值设定项,其中
x
y
UInt32

您可以将
rand_x
rand_y
强制转换为初始值设定项的兼容类型(例如
Int
CGFloat
),如下所示:

var rand_x = arc4random()
var rand_y = arc4random()
let point = CGPoint(x: Int(rand_x), y: Int(rand_y))
您可以对
CGPoint
进行扩展,引入
UInt32
初始值设定项:

extension CGPoint {
    init(x: UInt32, y: UInt32) {
        self.x = CGFloat(x)
        self.y = CGFloat(y)
    }
}
请注意,
CGPoint
是一个结构,包含两个
x
y
类型的
CGFloat
(这就是我在初始值设定项中使用
CGFloat
的原因)。

arc4random()
函数返回类型是
UInt32
,但是
CGPoint
没有初始值设定项,其中
x
y
UInt32

您可以将
rand_x
rand_y
强制转换为初始值设定项的兼容类型(例如
Int
CGFloat
),如下所示:

var rand_x = arc4random()
var rand_y = arc4random()
let point = CGPoint(x: Int(rand_x), y: Int(rand_y))
您可以对
CGPoint
进行扩展,引入
UInt32
初始值设定项:

extension CGPoint {
    init(x: UInt32, y: UInt32) {
        self.x = CGFloat(x)
        self.y = CGFloat(y)
    }
}
请注意,
CGPoint
是一个结构,包含两个
x
y
类型的
CGFloat
(这就是我在初始值设定项中使用
CGFloat
的原因)。

arc4random()
函数返回类型是
UInt32
,但是
CGPoint
没有初始值设定项,其中
x
y
UInt32

您可以将
rand_x
rand_y
强制转换为初始值设定项的兼容类型(例如
Int
CGFloat
),如下所示:

var rand_x = arc4random()
var rand_y = arc4random()
let point = CGPoint(x: Int(rand_x), y: Int(rand_y))
您可以对
CGPoint
进行扩展,引入
UInt32
初始值设定项:

extension CGPoint {
    init(x: UInt32, y: UInt32) {
        self.x = CGFloat(x)
        self.y = CGFloat(y)
    }
}
请注意,
CGPoint
是一个结构,包含两个
x
y
类型的
CGFloat
(这就是我在初始值设定项中使用
CGFloat
的原因)。

arc4random()
函数返回类型是
UInt32
,但是
CGPoint
没有初始值设定项,其中
x
y
UInt32

您可以将
rand_x
rand_y
强制转换为初始值设定项的兼容类型(例如
Int
CGFloat
),如下所示:

var rand_x = arc4random()
var rand_y = arc4random()
let point = CGPoint(x: Int(rand_x), y: Int(rand_y))
您可以对
CGPoint
进行扩展,引入
UInt32
初始值设定项:

extension CGPoint {
    init(x: UInt32, y: UInt32) {
        self.x = CGFloat(x)
        self.y = CGFloat(y)
    }
}
请注意,
CGPoint
是一个结构,包含两个
x
y
类型的
CGFloat
(这就是我在初始值设定项中使用
CGFloat
的原因)