Использование 3D Touch в Sprite Kit для измерения давления
В моем основном приложении я пытаюсь использовать 3D Touch, чтобы активировать стрельбу пулями, но результаты кажутся очень противоречивыми, и это не всегда дает результаты записи. Также мой 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()
}
1 ответ
Я собираюсь предположить, что это сбой, потому что вы добавляете метку к родителю несколько раз (Ваше условие if нарушено, независимо от того, какую функцию вы вызываете, (touchesBegan
,touchesMoved
,touchesEnded
) только одно из этих условий всегда будет touchesBegan
а также touchesMoved
, ваша сила всегда будет> 0, в вашем touchEnded
, ваша сила должна быть 0. (Я предполагаю, что этот код является вашим touchMoved
) Вместо этого добавьте свою метку в коде viewDidLoad и используйте поле.hidden, чтобы показать / скрыть свою метку на своих ходах. (Убедитесь, что на touchesEnded
скрыть это)