我在 SKScene 类中创建了一个名为 ForceTouch
的新类。这是 UIView
类型。不确定这样做是否正确,但它似乎已经消除了错误。
我的问题是;我已经在我的 ForceTouch
类中计算了一个值,并希望在我的 SKScene
类中使用它。是否有可能做到这一点?
下面是我的代码的副本:
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
计算的值,并稍后在代码中使用它:在我的 ForceTouch
类之外。
当我尝试这样做时,我收到错误“使用未解析的标识符-playerVelocity”。
请有人给我一些帮助来解决这个问题吗?
提前致谢!
最佳答案
如果您必须直接从您的 ForceTouch
类中使用 playerVelocity
值,那么您可以这样做,例如:
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
是对象您在 SKScene
类中拥有的 ForceTouch
类
或者如果你需要在一些 Action 之后发送playerVelocity
给parrent类你需要使用委托(delegate)机制
关于ios - 来自另一个类的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33546012/