Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
swift usesPreciseCollisionDetection不起作用?_Swift_Sprite Kit_Detection_Skphysicsbody - Fatal编程技术网

swift usesPreciseCollisionDetection不起作用?

swift usesPreciseCollisionDetection不起作用?,swift,sprite-kit,detection,skphysicsbody,Swift,Sprite Kit,Detection,Skphysicsbody,我制作了一个应用程序,你需要向敌人射击,但有时子弹会穿透敌人 所以我添加了usesPreciseCollisionDetection=true。 但是子弹有时还是会穿过敌人的身体。所以我的问题是我做错了什么,还是使用了精确的CollisionDetection不起作用 感谢您阅读我的问题,我希望有人能帮助我。您正在使用moveTo移动子弹,物理引擎无法按您希望的方式使用moveTo,usesprecisecollisondetection执行任何操作 就你的物理世界而言,你的子弹是静止的。你只是

我制作了一个应用程序,你需要向敌人射击,但有时子弹会穿透敌人

所以我添加了usesPreciseCollisionDetection=true。 但是子弹有时还是会穿过敌人的身体。所以我的问题是我做错了什么,还是使用了精确的CollisionDetection不起作用


感谢您阅读我的问题,我希望有人能帮助我。

您正在使用
moveTo
移动子弹,物理引擎无法按您希望的方式使用
moveTo
usesprecisecollisondetection
执行任何操作

就你的物理世界而言,你的子弹是静止的。你只是在扮演上帝,并执行某种分子运输来移动物品


如果您想让physicsBody正常工作,您需要使用类似于
applyImpulse
的函数,或者甚至只给physicsBody一个速度

我遇到了类似的问题,即即使usesPreciseCollisionDetection设置为true,并且两个SKPhysicsBody都是矩形,有时也无法检测到碰撞。在我的例子中,当我将其中一个SKPhysicsBody更改为圆形而不是矩形时,usesPreciseCollisionDetection出于某种原因开始工作得更好。尝试将你的子弹物理体改为圆形,似乎圆形的碰撞检测算法更精确,这样可能会对你有所帮助。

这两个物体应该碰撞、接触还是两者都接触?如果子弹击中敌人,敌人会爆炸,子弹会被移除