Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.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
Sprite kit Sprite套件中的防碰撞功能_Sprite Kit - Fatal编程技术网

Sprite kit Sprite套件中的防碰撞功能

Sprite kit Sprite套件中的防碰撞功能,sprite-kit,Sprite Kit,我有一个应用程序,其中有许多中大型节点在屏幕上无休止地跳动。此外,我还创建了一个小得多的节点,其目的是在屏幕上无休止地反弹,但当它遇到较大的节点时,这些节点应该受到强烈排斥,而微小的节点应该受到最小的影响,如果有的话,并保持其先前的轨迹 我应该设置什么属性?我试过搞弥撒和赔偿,但都没有用。如何使较小的对象受到碰撞的影响明显小于与其碰撞的较大节点 请注意,该应用程序运行良好,因为我有碰撞发生,因为他们应该。提前谢谢 您想设置一个真正的高密度属性 node.physicsBody.density

我有一个应用程序,其中有许多中大型节点在屏幕上无休止地跳动。此外,我还创建了一个小得多的节点,其目的是在屏幕上无休止地反弹,但当它遇到较大的节点时,这些节点应该受到强烈排斥,而微小的节点应该受到最小的影响,如果有的话,并保持其先前的轨迹

我应该设置什么属性?我试过搞弥撒和赔偿,但都没有用。如何使较小的对象受到碰撞的影响明显小于与其碰撞的较大节点


请注意,该应用程序运行良好,因为我有碰撞发生,因为他们应该。提前谢谢

您想设置一个真正的高密度属性

 node.physicsBody.density = 1000.0f
这应该行得通


此外,您还可以增加较大物体的弹性,使其反弹得更大

请发布一个示例,说明您如何设置大小物体的质量。你也设定了一种赔偿吗?阻尼呢?给这些微小的物体一个非常大的质量,这个效果非常好。但是,我注意到,即使physicsWorld.gravity设置为0.0,tinyNode.physicsBody.LinearDamping设置为0.0,具有极端密度的微小节点最终也会减速并停止。对我来说,这是一种意想不到的行为。是的,当身体移动时,它会失去速度。你可以做的一件事是将“弹性”设置为大于1的值,例如1.01或其他值,因此每次碰撞时它都会获得速度,这是我能找到的唯一使速度看起来恒定的方法。我知道使速度恒定的最佳方法(通常)是将“线性阻尼”设置为0。如果没有微小的节点造成碰撞,节点将无限期地在屏幕上浮动,而不会增加或降低速度,我将这归因于已将线性阻尼设置为0.0。这有道理吗?我不知道那里有那块地产。谢谢,这可能就是答案