我收到的代码中似乎是一个相对常见的错误,但其他问题的解决方案示例似乎与我的情况无关。例如; (binary operator '/' cannot be applied to two 'Double' operands)
let variable1 = Double()
let variable2 = Double()
let array = [5, 10]
var variable3 = Double()
func function() {
let variable1 = 50 / variable2
let variable3 = Double(arc4random_uniform(UInt32(Double(array.count))))
let scaleAction = SKAction.scale(by: variable1 * variable3, duration: 1)
无论如何,这都是相关的代码。无论出于何种原因,我收到错误,专注于最后一行中的乘法星,说"二元运算符" *"不能适用于两个" Double"操作数。为什么不能呢?有没有办法解决这个问题?
提前致谢。
答案 0 :(得分:2)
错误消息有点误导。真正的问题是scale(by:duration:)
需要CGFloat
作为比例:
open class func scale(by scale: CGFloat, duration sec: TimeInterval) -> SKAction
因此,您需要传递CGFloat
。您可以确保variable1
和variable3
为CGFloat
,也可以使用CGFloat
构造函数将其从Double
转换为1} p>
let scaleAction = SKAction.scale(by: CGFloat(variable1 * variable3), duration: 1)