我正在尝试创建一个允许对象从上到下向下移动的功能,但我收到此错误:无法调用非函数类型的值' Int'
import UIKit
import SpriteKit
class ViewController: UIViewController {
@IBOutlet weak var b: UIButton!
let getDuration=0
let node=0
let endpoint=0
@IBAction func swipe(_ sender: UIButton) {
func bpp(pointA:CGPoint,pointB:CGPoint,speed:CGFloat)->TimeInterval{
let xd = (pointB.x - pointA.x)
let yd = (pointB.y - pointA.x)
let d = sqrt((xd*xd)+(yd*yd));
let dur : TimeInterval=TimeInterval(d/speed)
return dur
}
}
lazy var m = SKAction.moveTo(endpoint, dur : getDuration(node.position,pointB:endpoint,speed:70.0))
}
答案 0 :(得分:0)
您有多个错误。您在bpp(pointA: CGPoint, pointB: CGPoint, speed: CGFloat)
IBAction中定义了一个函数swipe()
作为嵌套函数,然后永远不会调用它(或者在swipe()
操作中执行任何。然后你有一条线
lazy var m = SKAction.moveTo(endpoint,
dur: getDuration(node.position,pointB:endpoint,speed:70.0))
不在任何处理Int变量getDuration
的函数内部,就好像它是一个函数一样。 (这几乎肯定是引发错误的那一行。)我怀疑你的意思就是阅读该行。
lazy var m = SKAction.moveTo(endpoint,
dur: bpp(node.position,pointB:endpoint,speed:70.0))
相反。 (将bpp()
拉出Inaction并将其作为实例方法而不是IBAction
的嵌套函数。