我正在为Windows Phone 7.1开发一个基于XNA的2D游戏。我的要求是轻拍一个物体,根据轻拍的数量和角度,它将在垂直抛射运动中产生动画效果。例如,你前面有一个湖,你想往里面扔一块石头。同样的动作也必须在相机是人眼的情况下进行复制。
要覆盖的距离有3个级别。Y轴覆盖的距离大于X轴覆盖的距离。
我可以看到许多关于弹丸在水平(X-)轴上运动的方程,但没有一个在Y轴上表示弹丸运动。
你知道如何在X和Y坐标下实现这种抛射运动吗?
发布于 2012-10-17 06:12:03
如果你使用一个Vector2而不是一个角度,你可以实现一个非常基本的物理引擎,这将是简单和准确的。
要轻击的对象将有一个Vector2 Velocity和一个Vector2 Position。
然后,您可以将鼠标之间的距离作为Vector2添加到Velocity中,并在每一帧将Velocity添加到Position,然后添加重力。
下面是一个示例实现:
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);其中GRAVITY被设置为某个正值。
https://stackoverflow.com/questions/12914949
复制相似问题