无法使用类型为“(distance: (CGVector, fadeInWithDuration: Double))”的参数列表调用 'moveDistance'
Cannot invoke 'moveDistance' with an argument list of type '(distance: (CGVector, fadeInWithDuration: Double))'
运行 一种 SKAction 方法,但语法有一些问题。我从头开始,按照 Xcode 8 代码完成告诉我的方式填写所有内容,但仍然没有运气。
Cannot invoke 'moveDistance' with an argument list of type '(distance: (CGVector, fadeInWithDuration: Double))'
a.swift
extension SKAction {
class func moveDistance(distance:CGVector, fadeInWithDuration duration:TimeInterval) -> SKAction {
let fadeIn = SKAction.fadeIn(withDuration: duration)
let moveIn = SKAction.move(by: distance, duration: duration)
return SKAction.group([fadeIn, moveIn])
}
}
b.swift
// legacy
// //gameOverLayer?.runAction(SKAction.moveDistance(CGVectorMake(0, 100), fadeInWithDuration: 0.2)))
// Swift 3
gameOverLayer?.run(SKAction.moveDistance(distance: (CGVector(dx: 0, dy: 100), fadeInWithDuration: 0.2)))
几小时后我意识到我添加了太多的括号......是的菜鸟。
您可以重构您的扩展方法,使其更易于调用,如下所示:
extension SKAction {
class func move(dx: CGFloat, dy: CGFloat, fadeIn duration: TimeInterval) -> SKAction {
return SKAction.group([ SKAction.fadeIn(withDuration: duration),
SKAction.move(by: CGVector(dx: dx, dy: dy), duration: duration) ])
}
}
用法:
SKAction.move(dx: 0, dy: 100, fadeIn: 0.2)
运行 一种 SKAction 方法,但语法有一些问题。我从头开始,按照 Xcode 8 代码完成告诉我的方式填写所有内容,但仍然没有运气。
Cannot invoke 'moveDistance' with an argument list of type '(distance: (CGVector, fadeInWithDuration: Double))'
a.swift
extension SKAction {
class func moveDistance(distance:CGVector, fadeInWithDuration duration:TimeInterval) -> SKAction {
let fadeIn = SKAction.fadeIn(withDuration: duration)
let moveIn = SKAction.move(by: distance, duration: duration)
return SKAction.group([fadeIn, moveIn])
}
}
b.swift
// legacy
// //gameOverLayer?.runAction(SKAction.moveDistance(CGVectorMake(0, 100), fadeInWithDuration: 0.2)))
// Swift 3
gameOverLayer?.run(SKAction.moveDistance(distance: (CGVector(dx: 0, dy: 100), fadeInWithDuration: 0.2)))
几小时后我意识到我添加了太多的括号......是的菜鸟。
您可以重构您的扩展方法,使其更易于调用,如下所示:
extension SKAction {
class func move(dx: CGFloat, dy: CGFloat, fadeIn duration: TimeInterval) -> SKAction {
return SKAction.group([ SKAction.fadeIn(withDuration: duration),
SKAction.move(by: CGVector(dx: dx, dy: dy), duration: duration) ])
}
}
用法:
SKAction.move(dx: 0, dy: 100, fadeIn: 0.2)