来自另一个类的值

时间:2015-11-05 13:37:57

标签: ios swift

我在SKScene类中创建了一个名为index的新类。这是ForceTouch类型。不确定这是否正确,但它似乎已经消除了错误。 我的问题是;我在UIView课程中计算了一个值,并希望在我的ForceTouch课程中使用它。是否有可能做到这一点? 以下是我的代码的副本:

SKScene

class ForceTouch: UIView {

我想使用我为override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) { if let touch = touches.first where traitCollection.forceTouchCapability == .Available { let relativeForce = touch.force / touch.maximumPossibleForce let forceMultiplier: CGFloat = 100 let playerFlight = CGFloat(relativeForce) * CGFloat(forceMultiplier) var playerVelocity = CGPoint.zero func flyPlayer() { playerVelocity = CGPoint(x: 0, y: playerFlight) } flyPlayer() } } } 计算的值,稍后在代码中使用它:在playerVelocity类之外。 当我尝试这样做时,我收到错误“使用未解析的标识符 - playerVelocity”。 请问有人可以帮我解决一下这个问题吗? 提前谢谢!

1 个答案:

答案 0 :(得分:1)

如果您必须从playerVelocity课程中删除ForceTouch值,那么您可以这样做,例如:

class ForceTouch: UIView {

    var playerVelocity = CGPoint.zero

    override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) {
        if let touch = touches.first where traitCollection.forceTouchCapability == .Available {
            let relativeForce = touch.force / touch.maximumPossibleForce
            let forceMultiplier: CGFloat = 100
            let playerFlight = CGFloat(relativeForce) * CGFloat(forceMultiplier)
            func flyPlayer() {
                playerVelocity = CGPoint(x: 0, y: playerFlight)
            }

            flyPlayer()
        }
    }
}

然后在SKScene课程中,从ForceTouch对象中获取forceTouch.playerVelocity,其中forceTouch是您ForceTouch类的对象SKScene 1}}类

或者,如果您需要在某些操作后将par playerVelocity发送到parrent类,则需要使用委托机制