0

我正在用 C#/.NET ( Windows Forms ) 开发游戏。在玩游戏时,有一个场景是物体从一个点移动到另一个点(从左到右)。右侧点的坐标是固定的。然而,物体的位置(要向右移动)是事先不知道的,因此它的坐标是事先不知道的,所以我们不能有一个硬编码的路径。

我想生成一条路径,它以弯曲的方式将对象从左点移动到右点(就像我们在Angry Birds中扔鸟一样),而不是以直线方式。

下面是可以帮助您理解场景的图像。

在此处输入图像描述

是否有执行此类任务的算法或任何API ?

4

4 回答 4

2

您可以计算对象的物理轨迹。对于您要查找的内容,简单的公式是某个物体以初始速度运动并受重力影响而没有阻力或风。这条轨迹是一条抛物线

给定初始速度和重力,路径是固定的。您可以求解轨迹方程以获得目标 x,y 或投掷后某个时间对象的位置。

于 2012-05-14T17:53:59.230 回答
1

这并不太难做到。当需要移动对象时,首先获取其坐标(此时您将知道它)。使用射弹运动方程得到其路径的方程,然后沿着该路径移动它。

于 2012-05-14T17:50:16.370 回答
1

您需要通过非规范椭圆的弧线。如果您阅读 Wikipedia 文章Ellipse,您会发现一些有趣的方法来实现这一点,但这应该可以帮助您入门:

在此处输入图像描述

'a' 和 'b' 是你的半径。

所以现在只需重构公式以隔离 X 并再次重构以隔离 Y ...

于 2012-05-15T16:14:06.300 回答
0

我找到了一个更简单的解决方案。使用Bezier 曲线变换,我可以按照我想要的方式生成路径。

于 2013-04-19T15:59:22.950 回答