我正在用玩家和导弹制作游戏。
我想从P1向P2发射导弹。导弹应始终仅花费五秒钟即可到达P2。导弹还应该跟踪P2。如果P2移得更远,则导弹必须加快速度以满足时序约束。如果P2向左移动,则导弹必须向左移动(并同时改变速度)。如果P2靠近P1,则导弹必须减速。
这可能吗?做到这一点的最佳方法是什么?
我目前没有Vector2D类(这实际上不是游戏,但是类推效果很好),因此,如果可能的话,我想要一个不需要的解决方案。
编辑:这实际上也不是导弹。:)
谢谢!
1
(我有点害怕有人问导弹制导是否符合“这实际上不是游戏”的意思,但是……)您对导弹的轨迹形状有任何限制吗?它可以始终沿当前位置和玩家2之间的直线走吗?它的转弯半径或加速度是否有限制?是否需要避免障碍?另外,您提到Vector2D-可以安全地假设您只需要2D图像吗?您可以按部就班地完成所有矢量数学运算,但是与简单的矢量数学类相比编写起来很笨拙,因此我并不十分了解对此的偏爱。
—
DMGregory
您错过了一些其他信息。有约束吗?导弹是沿着一条直线移动还是我们应该关心方向,最终有多少尺寸?
—
liggiorgio '16
路径不应受到限制。唯一的规则是:A)“导弹”应始终朝着其目标采取步骤。B)“导弹”应该总是花5秒钟到达那里。编写Vector2D类没有问题。我只是没有方便(数学不是我最好的学科)。如果它使它更容易,我可以添加它。
—
彼得
最简单的方法是使用Hermite样条曲线,并套用参数值。
—
史蒂文·斯伦