gpt4 book ai didi

c++ - Box2D 对象调用 ApplyForce 函数时如何判断点

转载 作者:行者123 更新时间:2023-11-28 05:54:05 31 4
gpt4 key购买 nike

我正在使用 Box2D 做一个简单的射击游戏,用户需要选择一个角度和力来射球并击中某物。 (类似于愤怒的小鸟)。我的球的初始位置是静止的,玩家可以选择射门的角度和力量。为此,我调用了 ApplyForce 函数。

引用文档 here ,我们需要在调用 b2Body::ApplyForce(const b2Vec2 & force, const b2Vec2 & point) 时输入 2 个参数。我明白力的作用是什么,但是点是用来做什么的,我该如何确定呢?

在我的例子中,如果用户选择了 10N 的力和 45 度(超出 360 度)的射击度数,我如何将 45 度值转换为我的 point 参数代码?我不确定 point 参数是如何工作的,而且我找不到任何文档或引用资料。非常感谢任何引用或指导。

最佳答案

我认为您对 point 参数的理解有误。点参数不代表力的方向。相反,您可以在 b2Vec2 force 中指定力的方向。

如果您想将力施加到特定程度(在您的情况下为 45),您可以这样做。

yourForce = b2Vec2(cos(yourAngle) * magnitude , sin(yourAngle) * magnitude);

然后像你提到的那样调用 ApplyForce 函数

yourObject->ApplyForce(yourForce, yourObject->GetPosition());

关于c++ - Box2D 对象调用 ApplyForce 函数时如何判断点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34597012/

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