我明确地在它们之间强制转换了类型,但错误仍然存在
var destX:CGFloat = 5.0
func clamp(value: CGFloat, min: CGFloat, max: CGFloat) -> CGFloat {
if value > max {
return max
}
else if value < min {
return min
}
return value
}
override func update(_ currentTime: TimeInterval) {
let ballRadius: CGFloat = 10
destX = simd.clamp(destX, min: ballRadius, max: frame.width - ballRadius) as CGFloat
let destXAction = SKAction.moveTo(x: destX, duration: 0.1)
self.main.run(destXAction)
这是代码
答案 0 :(得分:2)
看看here,我看不到需要CGFloat的重载。 simd.clamp
取float2
,float3
,float4
,double2
,double3
或double4
中的一个。
要使用您的 func clamp(value:, min:, max:)
,请按以下方式调用:
destX = clamp(value: destX, min: ballRadius, max: frame.width - ballRadius)