如何在 box2d 中停止作用在物体上的力

发布于 2024-12-06 11:57:48 字数 150 浏览 0 评论 0原文

我正在 iPhone 上使用 box2d 来创建游戏。我的身体受重力影响向下移动,而不是向右或向左移动。它会被另一个物体击中,然后向右或向左移动。然后我有一个重置按钮,可以将身体移回到起点。唯一的问题是它仍在向右或向左移动。如何抵消球已经行进的力?当我重置游戏时,如何摆脱这种左右移动?

I am using box2d on the iphone to create a game. I have a body that is effected by gravity to move down and not right or left. It will get hit by another body and will then be moving right or left. I then have a reset button which moves the body back to its starting point. The only problem is that it is still moving right or left. How can I counteract the forces that a ball is already traveling? How can I get rid of this right and left movement when I reset my game?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

留蓝 2024-12-13 11:57:48

Box2d 自动清除每个模拟步骤的力。我认为你在重置时只是改变了身体的位置,而不是它的速度。将此代码添加到您的重置方法中:

body->SetLinearVelocity(b2Vec2(0,0));
body->SetAngularVelocity(0);

Box2d automatically clears the forces each simulation step. I think you are just changing your body's position when resetting, but not its velocity. Add this code to your reset method:

body->SetLinearVelocity(b2Vec2(0,0));
body->SetAngularVelocity(0);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文