在 Swift 中无法将 CGPoint 或 CGFloat 转换为 Double
Cannot convert CGPoint, or CGFloat to a Double in Swift
我正在编写一个接受 CGPoint 和 CGFloat 的函数,然后它接受这两个值,然后在 Swift 中减去它们。每当我尝试对 CGFloat 和 CGPoint 使用 Double() 时,我都会遇到问题。我尝试过使用其他值转换,但无论我尝试将 CGPoints 和 CGFloats 转换成什么,我总是收到一条错误消息,说我不能将“-”应用于 Double、CGFloat、Int 等的操作数。
func findTheDifference(location: CGPoint) -> Double {
let position = sprite.position.y
let difference = position - location
return difference
}
您正在尝试对一个结构和一个浮点数进行算术...那是行不通的。
如果你想找出 x 和 y 分量之间的差异,你会这样做:
func findTheDifference(location: CGPoint) -> Double {
return location.y - location.x
}
如果您要计算两点之间的距离(sprite.position 和位置),您可以使用距离公式:http://www.purplemath.com/modules/distform.htm
func findTheDistance(point1: CGPoint, point2: CGPoint) -> Double {
let xDist = Double(point2.x - point1.x)
let yDist = Double(point2.y - point1.y)
return sqrt((xDist * xDist) + (yDist * yDist))
}
let location = // get location
let distance = findTheDistance(sprite.position, location)
如果您只是想找出 y 分量之间的差异:
func findTheDifference(location: CGPoint) -> Double {
return Double(sprite.position.y - location.y)
}
减去位置的y
return position - location.y
我正在编写一个接受 CGPoint 和 CGFloat 的函数,然后它接受这两个值,然后在 Swift 中减去它们。每当我尝试对 CGFloat 和 CGPoint 使用 Double() 时,我都会遇到问题。我尝试过使用其他值转换,但无论我尝试将 CGPoints 和 CGFloats 转换成什么,我总是收到一条错误消息,说我不能将“-”应用于 Double、CGFloat、Int 等的操作数。
func findTheDifference(location: CGPoint) -> Double {
let position = sprite.position.y
let difference = position - location
return difference
}
您正在尝试对一个结构和一个浮点数进行算术...那是行不通的。
如果你想找出 x 和 y 分量之间的差异,你会这样做:
func findTheDifference(location: CGPoint) -> Double {
return location.y - location.x
}
如果您要计算两点之间的距离(sprite.position 和位置),您可以使用距离公式:http://www.purplemath.com/modules/distform.htm
func findTheDistance(point1: CGPoint, point2: CGPoint) -> Double {
let xDist = Double(point2.x - point1.x)
let yDist = Double(point2.y - point1.y)
return sqrt((xDist * xDist) + (yDist * yDist))
}
let location = // get location
let distance = findTheDistance(sprite.position, location)
如果您只是想找出 y 分量之间的差异:
func findTheDifference(location: CGPoint) -> Double {
return Double(sprite.position.y - location.y)
}
减去位置的y
return position - location.y