gpt4 book ai didi

math - 如何使物体沿弧线运动?

转载 作者:行者123 更新时间:2023-12-04 22:57:13 27 4
gpt4 key购买 nike

我正在制作一个游戏,其中应该有一个机器人向另一个机器人 throw 球形物体。

抛出的球应呈对称弧形飞行。很确定这个数学词是抛物线。

两个机器人都在 x 轴上。

如何在我的游戏中实现这样的功能?我尝试了不同的方法,但均无效。

我游戏中当前的移动系统是这样的:每个对象都有 xy 坐标(变量),以及 dxdy 变量。

每个对象都有一个 move() 方法,在游戏循环的每个循环中都会调用该方法。它只是将 dx 添加到 x 并将 dy 添加到 y

如何将我所描述的内容应用到这个系统中?

如果涉及到很多数学,请尽量用简单的方式解释,因为我数学不好。

我的情况:

enter image description here

非常感谢

最佳答案

你应该给你的导弹增加速度

速度是一个矢量,表示导弹在 x 轴上的移动速度以及在 y 轴上的移动速度。现在,不要使用 Move(),而是使用类似 Update() 的方法。像这样:

void Update()
{
position.X += velocity.X;
position.Y += velocity.Y;
}

现在让我们想想,一旦导弹被击中会发生什么:

一开始它有一些启动速度。例如,有人以 x 方向 1 m/s 的速度和 y 方向 -0.5 m/s 的速度发射导弹。然后当它归档时,导弹将被拉到地面 - 它的 Y 速度将向地面增加。

void Update()
{
velocity.Y += gravity;

position.X += velocity.X;
position.Y += velocity.Y;
}

这将使您的导弹根据物理原理(不包括空气阻力)移动,并产生漂亮的抛物线。

编辑:您可能会问如何计算初始速度。假设我们有一个给定的射击角度(在射击线和地面之间)和初始速度(我们可能知道射击后的导弹有多快,只是不知道 X和 Y 值)。然后:

velocity.X = cos(angle) * speed;
velocity.Y = sin(angle) * speed;

关于math - 如何使物体沿弧线运动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21368210/

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