我正在尝试创建一个允许对象在屏幕上向下移动的功能

时间:2018-03-09 00:20:53

标签: swift skaction

我正在尝试创建一个允许对象从上到下向下移动的功能,但我收到此错误:无法调用非函数类型的值' 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))
}

1 个答案:

答案 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的嵌套函数。