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

Swift - Operator Overload - Multiplication for CGFloat

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

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里了,还需要放在别的地方吗?

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

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