我在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”。
请问有人可以帮我解决一下这个问题吗?
提前谢谢!
答案 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类,则需要使用委托机制