在Swift中不能将CGPoint或CGFloat转换为Double



我正在写一个函数,它需要CGPoint和CGFloat,然后它需要这两个值,然后在Swift中减去它们。每当我尝试为CGFloat和CGPoint使用Double()时,我都会遇到麻烦。我尝试过使用其他值转换,但无论我尝试转换CGPoints和CGFloats,我总是得到一个错误说,我不能应用"-"到双,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
}

如果你试图找到两点之间的距离(精灵)。位置和位置),您将使用距离公式: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

最新更新