c – 计算可以从墙壁反弹的球的未来位置

我正在尝试做一些未来预测,我想计算球应该在特定高度(y)的位置.球向上射击并且可以从比赛的两侧反弹.弹跳不会影响移动速度.

我当前的配置是左下角是(0,0),右下角是(10,0)没有上限高度.

码:

void getPositionXAtHeight(float height, Vec2 pos, Vec2 vel, float gravityForce = 9.8f, float gameWidth, float& positionX)
{
    float a = gravityForce / 2.0f;
    float b = vel.y;
    float c = pos.y - height;

    float t = (sqrtf((b * b) - (4.0f * a * c)) - b) / (2.0f * a);

    positionX = pos.x + (vel.x*t);
}

《c – 计算可以从墙壁反弹的球的未来位置》

任何人都可以建议我的代码到目前为止是否正确以及我应该怎样处理墙反弹?
此外,我觉得我应该做一些错误检查,但我不确定我需要在哪里?

最佳答案 目前尚不清楚引力的方向是什么,但假设它沿着y轴.然后,为了对称,如果它们超过10,你可以“包围”x值.如果你的方程导致x = 11,对于对称性,在反弹后,x = 9(10 – (11 – 10)).

同样,你可以对待“双反弹”等.

点赞