在一定时间后预测物体的位置

Predicting an object's position after a certain amount of time

本文关键字:位置 定时间      更新时间:2023-10-16

我目前正试图想出一种方法来高精度地"解决"玩家的位置。

该位置将是导弹被发送到的地点。导弹将有速度/延迟/宽度和射程。玩家也有速度,很可能会试图走出导弹,这就是我试图"预测"的。我可以过滤所有不可能将导弹发送到的地方(因为玩家无法移动到那里,或者会被另一个物体阻挡移动(,但我仍然面临玩家试图走出导弹的问题。

一个简单的

const float missile_speed = 2000;
const float missile_width = 100;
const float missile_delay = 0.250f;
const float target_speed = 350;
float time_to_land = (player->position.distance_to(sender->position) / missile_speed) + missile_delay;
D3DXVECTOR3 position = player->position + player->direction *  time_to_land);

我不会这么做,因为玩家可以在导弹发射的那一刻改变方向,有效地使其错过。这就是我可以使用玩家的路径并将其分割,然后分析它以找到我能投到的最佳位置,但如果玩家突然改变方向,自动点唱问题仍然存在。导弹有时肯定会命中,但它不会一直命中。

我不知道该怎么处理。我已经搜索了很长一段时间,大多数"解决方案"都是我在示例中找到的。

我应该如何正确处理?我正在考虑神经网络,但我不知道从哪里开始,也找不到任何使用人工智能来详细说明问题的资源。请记住,我是用C++来做这件事的。

我看不到导弹发射后的限制。如果这种导弹可以在飞行过程中被引导/重定向,那么一些解决方案,比如在每1/10的时间_to_land后触发玩家位置的重新计算,就可以了。您可以通过更频繁地触发来提高精度。另一方面,如果玩家的位置需要在发射前确定,那么它就是不同的野兽。