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里了,还需要放在别的地方吗?
在您的示例中,margin
是 Double
。试试这个:
newSprite.position = CGPoint(x: padding * CGFloat(margin), y: 0)
所以我的代码中有这样的东西:
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里了,还需要放在别的地方吗?
在您的示例中,margin
是 Double
。试试这个:
newSprite.position = CGPoint(x: padding * CGFloat(margin), y: 0)