2015-07-09 53 views
-2

我正在編寫一個採用CGPoint和CGFloat的函數,然後它將這兩個值都計算出來,然後在Swift中將它們相減。每當我嘗試將Double()用於CGFloat和CGPoint時,我都遇到了麻煩。我嘗試過使用其他值轉換,但無論我嘗試將CGPoints和CGFloats轉換爲什麼,我總會收到一個錯誤消息,說明我無法將「 - 」應用於Double,CGFloat,Int等操作數。無法將CGPoint或CGFloat轉換成Swift中的Double

func findTheDifference(location: CGPoint) -> Double { 
    let position = sprite.position.y 
    let difference = position - location 
    return difference 
    } 
+1

以及您是從雙減去CGPoint的y。你說(2,3) - 5.這並不意味着什麼。 – rocky

回答

4

你正在試圖對一個結構和一個浮點數進行算術......這是行不通的。

如果你想找到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) 
} 
0

減去位置

return position - location.y