gpt4 book ai didi

box2d - "wake"对 b2Body::ApplyLinearImpulse 有什么影响?

转载 作者:行者123 更新时间:2023-12-04 18:08:24 32 4
gpt4 key购买 nike

我正在使用 Box2d v2.3
以下 box2d 方法采用 bool "wake":

inline void b2Body::ApplyLinearImpulse(const b2Vec2& impulse, const b2Vec2& point, bool wake)

它有什么作用?不管我把它设置为 YES 还是 NO,它似乎都不明显
影响我的物理。

早期版本的 Box2d 不接受 bool - 他们只是冲动和点。

编辑:以下方法也是如此:
inline void b2Body::ApplyForce(const b2Vec2& force, const b2Vec2& point, bool wake)

最佳答案

摘自官方Box2D manual :

What does sleep mean? Well it is expensive to simulate bodies, so the less we have to simulate the better. When a body comes to rest we would like to stop simulating it.

When Box2D determines that a body (or group of bodies) has come to rest, the body enters a sleep state which has very little CPU overhead. If a body is awake and collides with a sleeping body, then the sleeping body wakes up. Bodies will also wake up if a joint or contact attached to them is destroyed. You can also wake a body manually.


所以 sleepmode 是一种提高性能的方法。唤醒一个物体是有意义的,当你对它施加一个力时,所以如果它还没有醒来,它会被唤醒并被模拟,因为这就是你可能想要的。
如果它已经醒了,也没关系。它不会被设置为 sleep wake=false再次唤醒它,并没有改变任何东西。为了安全起见,您应该始终使用 wake=true .在最坏的情况下,它会稍微影响性能,但只会影响一小会儿。然后 Box2D 无论如何都会让它重新进入休眠状态。

关于box2d - "wake"对 b2Body::ApplyLinearImpulse 有什么影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20867450/

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