Swift X,Y坐标的随机数发生器
我今天在写代码时,偶然发现我的随机数生成器有一个问题。我正在尝试制作一个发电机,就像《水果忍者》中的发电机一样,我也在用swift写作。以下是我的代码片段: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”的初始值设定项 有什么
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
的原因)