如何在C#/ Direct X 9.0中跳转角色?

时间:2012-05-25 15:10:45

标签: c# 2d directx-9

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

我想知道是否有一种简单的方法可以做到这一点。我已经搜索了高低的答案,但我找到的答案要么无关紧要,要么使用不同的编程语言,如XNA。

我目前有一个bool变量设置,用于检查是否已按下W,触发任何代码使其跳转。我一直在搞乱如此。

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

哪个效果不好。

1 个答案:

答案 0 :(得分:1)

你需要更多的跳跃而不是四处走动:你需要加速的概念。

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

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