0

我正在为 Windows Phone 7.1 开发基于 XNA 的 2D 游戏。我的要求是轻弹一个对象,根据轻弹的数量和角度,它会以垂直的弹丸运动进行动画处理。例如,你面前有一个湖,你想往里面扔石头。必须用相机作为人眼来复制相同的动作。

有3个级别的距离要覆盖。Y 轴覆盖的距离大于 X 轴覆盖的距离。

我可以看到许多方程给出了水平(X)轴上的弹丸运动,但没有一个方程显示 Y 轴上的弹丸运动。

知道如何根据 X 和 Y 坐标实现这种抛射运动吗?

4

1 回答 1

1

如果您使用 aVector2而不是角度,您可以实现一个非常简单且准确的基本物理引擎。

要轻弹的对象将具有 aVector2 Velocity和 a Vector2 Position

然后您可以将鼠标之间的距离作为 a添加Vector2Velocity,并将 添加VelocityPosition每一帧,然后添加重力。

这是一个示例实现:

public class FlickObject
{
    public Vector2 Velocity;
    public Vector2 Position;

    public FlickObject () {}

    public void Update(GameTime t)
    {
        Position += Velocity;
    }
}

在游戏类中(当用户轻弹对象时):

flickObject.Velocity += FlickDistance;

FlickDistance鼠标(或者你计算它)和对象之间的距离在哪里。

要完成它,请添加重力:

flickObject.Velocity += new Vector2(0, GRAVITY);

WhereGRAVITY设置为某个正值。

于 2012-10-16T22:12:02.873 回答