gpt4 book ai didi

swift - 从 PhysicsBody 移除弹跳?

转载 作者:行者123 更新时间:2023-11-28 07:52:57 27 4
gpt4 key购买 nike

我如何才能完全消除我的 PhysicsBodies 的弹跳,我已经将所有 PhysicsBodies 的恢复设置为 0,但是当多个 PhysicsBodies 发生碰撞时,它们仍然会相互反弹,如何才能关闭此功能?这是一个视频,我在其中上下滑动会触发蓝色 SpriteNode 上的这段代码:

node.physicsBody?.applyImpulse(CGVector(dx: x, dy: y))

https://imgur.com/a/MD2Sc

我希望蓝色的 SpriteNodes 保持向上或向下而不反弹

最佳答案

您是否在没有任何世界阻尼/摩擦的空间中进行实验?如果是这样,您需要在物体碰撞时将它们的速度归零,以获得零反弹。但是您还需要将它们移到它们碰撞的对象的边界之外。

作为解释:我认为,这是因为在向物理引擎报告碰撞之前,您的对象正在实现(轻微)重叠状态。发生这种情况时,某些物理引擎的第一 react 是通过使用校正量的力或运动移动对象来消除这种重叠。正在发生的事情看起来像是该运动的延续。

在某些物理引擎中,您有机会确定校正行为的强度和发生频率,甚至可以将物理模拟设置为比帧速率高得多的求解速率。在这些引擎中,您可以找到适当的设置平衡来防止这种情况发生。但不是在 SpriteKit 中。

关于swift - 从 PhysicsBody 移除弹跳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49222634/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com