出现这种问题, 是因为设置的最大速度过大, 导致运动物体达不到最小阀值而无法停下来, 只能在无限逼近中抖动, 在b2setting中修改这两个参数可以解决这个问题:
我在之前的运动中犹豫设计比例问题, 导致默认的box2d速度无法达到效果, 于是改了b2_maxTranslation
最大速度到1000.0f
, 结果就导致了趋于静态的物体会持续不断的抖动, 无法触发sleep. 这里修改下面参数, 让阀值在趋于静态的物体的值之上即可.
-
b2_linearSlop
将0.005f
改为更大的值, 但尽量小一些, 我这里改为0.5f
-
b2_velocityThreshold
将1.0f
改为100.0f
网友评论