Swift - 运算符重载 - CGFloat的乘法

时间:2016-02-25 14:50:24

标签: swift sprite-kit operator-overloading

所以我的代码中有这样的东西:

let padding = mySprite1.size.height/2
let margin = 1.2

然后在一个函数中,我尝试将它们相乘:

newSprite.position = CGPointMake(x: 0 + (padding * margin), y: 0)

但它错误地说没有二进制重载...所以我试着像这样重载它们:

public func * (a: CGFloat, b: CGFloat) -> CGFloat {
    return a * b
}

但是它出错了,我甚至按照RayWenderlich重载他+的确切方式。

我把我的方法放在GameScene中,它是否需要放在其他地方?

1 个答案:

答案 0 :(得分:3)

在您的示例中,marginDouble。试试这个:

newSprite.position = CGPoint(x: padding * CGFloat(margin), y: 0)