[游戏开发]抛物线弹道计算

发布时间:2024年01月06日

游戏中常见的抛物线形式有两种

1:平抛运动,例如弩车

2:投石车、弓箭手斜抛运动

在实际开发中,我们还会遇到两种不同的情况

  1. 第一种是射击目标坐标已知(例如阴阳师那种回合制战斗游戏,弓箭手向固定坐标射一箭,可以用贝塞尔曲线模拟一个假的弹道就行了,箭的旋转方向就是贝塞尔曲线的切线方向)
  2. 第二种是射击目标坐标未知(弓箭手拉弓,向上抬?角度,射一箭,具体射谁我也不知道,这种情况下就需要实时计算弓箭的位置和朝向)

第一种情况直接用二次贝塞尔曲线搞定

下面重点说一下无目标抛物线射击

在游戏中,我们需要知道每一帧箭的位置,以及朝向,然后刷新子弹的坐标和旋转,但我们已知的数据只有初始速度,射击角度,重力,还有一个很重要的自变量运行时间

下面下给出二维情况下运行时间t和高度y的对应关系

//Vo射击方向的初速度
//t子弹经过总时长
//g重力

y = Vo * Sin? * t - 1/2 * g * t2?

根据以上公式,可以推导出任意时刻子弹的高度y

还可以判断出子弹何时落地

文章来源:https://blog.csdn.net/liuyongjie1992/article/details/135409276
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。