无法在不同的类中调用函数,错误:无法使用我的参数类型调用

时间:2015-07-24 18:33:40

标签: swift sprite-kit

我有一个名为GameScene的类,其中包含以下相关代码:

class GameScene: SKScene {
    function grav(pos: CGPoint) -> CGVector {
        var direction = CGVector(dx: self.frame.width/2 - pos.x, dy: self.frame.height/2 - pos.y)
    direction = normalize(direction)
    let d = distance(pos, pos2: CGVector(dx: self.frame.width/2, dy: self.frame.height/2))
    direction = multiply(direction,scalar: mass/(d*d))
    return direction
   }
}

另一个名为Player的类,我尝试调用grav方法

class Player: SKSpriteNode {
    function drawBall() {
        var gravity = GameScene.grav(self.position)
    }
}

然而,我收到错误:无法调用' grav'使用类型'(CGPoint)'的参数列表。当我让XCode自动完成方法时,我得到了GameScene.grav(GameScene)。我错过了什么?

1 个答案:

答案 0 :(得分:3)

grav是一种实例方法。您正在课堂上调用它,而您应该在课程的实例上调用它。