为啥box2d速度低的情况下, 碰撞不反弹, 贴着物体飞行??

本文探讨了在Box2D物理引擎中遇到的一个基础问题:为什么极低速度的碰撞会导致物体无法正常反弹,并提供了调整解决方案。通过修改b2_velocityThreshold变量的默认值,可以改善如台球游戏等应用中对于缓慢碰撞的处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这种状况一般出现在无重力环境, 在很低的速度 大概是1m/s的情况, 就被考虑成无法反弹的物体, 即便是恢复系数很高也没用

找到b2Settings这个类:

找到b2_velocityThreshold这个变量, 默认是1, 改得更小一些, 一般0.5就ok

当然 , 改的越小, 微小运动就越难停止

box2d基础问题:

http://www.iforce2d.net/b2dtut/gotchas

Why do very slow collisions cause no rebound?

To help keep the simulation stable very small bounces are treated as inelastic, regardless of the restitution settings you have given the fixtures. The most common case where this becomes a problem is snooker/billiards games, where even a slow collision with the side walls or the other balls should be calculated accurately. In b2Settings.h you can change the default value (b2_velocityThreshold) for the minimum velocity to consider inelastic. Changing this to a much smaller value should not usually cause any problems.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值