Swift - 运算符重载 - 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
}

但它错误了,我什至遵循了雷温德利希重载他的 + 的确切方式。

把我的方法放在游戏场景中,它需要放在其他地方吗?

在您的示例中,margin 是一个Double。试试这个:

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

最新更新