在我的主应用程序中,我试图使用3D触摸来激活子弹射击,但结果似乎非常不一致,而且它并不总是给我写结果。当我使用这个代码时,我的iPhone 6S也崩溃了,这是我用来测试的代码。
for touch in touches {
let location = touch.locationInNode(self)
var force = touch.force * 10
var maxForce = touch.maximumPossibleForce
print ("The force is")
print (maxForce*4)
print (force*10000000)
if force != 0{
myLabel.text = "Force"
myLabel.fontSize = 45
myLabel.position = CGPoint(x:CGRectGetMidX(self.frame), y:CGRectGetMidY(self.frame))
self.addChild(myLabel)
myLabel.zPosition = 100000
}
else {
myLabel.removeFromParent()
}
我猜它正在崩溃,因为你多次向父级添加标签(如果条件已破坏,无论你调用什么函数,(touchesBegan
、touchesMoved
、touchesEnded
),这些条件中只有一个始终为真,在touchesBegan
和touchesMoved
中,你的力将始终>0,在touchEnded
中,力应为0。(我假设这个代码是你的touchMoved
)相反,在你的viewDidLoad代码中添加你的标签,并使用.hidden字段在你的移动中显示/隐藏你的标签。(确保在touchesEnded
上隐藏它)