首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在XNA 2D游戏中创建垂直抛物线路径?

如何在XNA 2D游戏中创建垂直抛物线路径?
EN

Stack Overflow用户
提问于 2012-10-16 20:40:24
回答 1查看 546关注 0票数 0

我正在为Windows Phone 7.1开发一个基于XNA的2D游戏。我的要求是轻拍一个物体,根据轻拍的数量和角度,它将在垂直抛射运动中产生动画效果。例如,你前面有一个湖,你想往里面扔一块石头。同样的动作也必须在相机是人眼的情况下进行复制。

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

我可以看到许多关于弹丸在水平(X-)轴上运动的方程,但没有一个在Y轴上表示弹丸运动。

你知道如何在X和Y坐标下实现这种抛射运动吗?

EN

回答 1

Stack Overflow用户

发布于 2012-10-17 06:12:03

如果你使用一个Vector2而不是一个角度,你可以实现一个非常基本的物理引擎,这将是简单和准确的。

要轻击的对象将有一个Vector2 Velocity和一个Vector2 Position

然后,您可以将鼠标之间的距离作为Vector2添加到Velocity中,并在每一帧将Velocity添加到Position,然后添加重力。

下面是一个示例实现:

代码语言:javascript
复制
public class FlickObject
{
    public Vector2 Velocity;
    public Vector2 Position;

    public FlickObject () {}

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

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

代码语言:javascript
复制
flickObject.Velocity += FlickDistance;

其中FlickDistance是鼠标(或计算方式)与对象之间的距离。

要完成它,请添加重力:

代码语言:javascript
复制
flickObject.Velocity += new Vector2(0, GRAVITY);

其中GRAVITY被设置为某个正值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12914949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档