0

我目前正在使用 Direct X 9.0 在 C# 中制作游戏。我几乎完成了所有事情,但我在跳跃的物理方面遇到了问题。我为 Y 和 X 坐标声明了变量。

我想知道是否有一种简单的方法可以做到这一点。我一直在寻找答案,但我找到的答案要么无关紧要/要么使用不同的编程语言,例如 XNA。

我目前设置了一个布尔变量来检查是否W已按下触发任何代码以使他跳跃。我一直在胡闹之类的。

if (Form1.jump == true)
{
    Playerypos = Playerypos - vel;
    Playerxpos = Playerxpos + vel;
    //Form1.jump = false;
}

效果不太好。

4

1 回答 1

1

跳跃比四处走动更需要一点:你需要加速度的概念。

基本上,当您检测到按下跳转键时,您会将垂直加速度设置为某个正值。你的物理循环将不得不改变以不断地将你的加速度添加到你的位置,然后将重力添加到你的加速度中(从而减少它然后将其变为负值以重新降落)。将您的位置固定到您的陆地/飞机/可能的最低位置(*),您就可以了!

(*) 从来没有看起来那么容易,你必须在这里实现某种光线投射算法,因为你会以较大的增量跳跃并且可能会掉到地上。想想盒子相交线而不是点线。

于 2012-05-25T15:16:56.533 回答