在Sprite Kit中使用3D touch来测量压力

时间:2016-03-27 07:50:42

标签: ios swift sprite-kit 3dtouch force-touch

在我的主应用程序中,我正在尝试使用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()
        }

1 个答案:

答案 0 :(得分:0)

我猜它会崩溃,因为你多次向父母添加标签(无论你调用什么函数,你的if条件都被破坏了,(touchesBegantouchesMoved,{{ 1}})只有其中一个条件永远为真,在touchesEndedtouchesBegan中,你的力量总是> 0,在你的touchesMoved中,你的力量应该是0。 (我将假设此代码是您的touchEnded)而是在viewDidLoad代码中添加您的标签,并使用.hidden字段在您的移动中显示/隐藏您的标签。(确保在{{1隐藏它)