1

我一直在使用 XNA 开发一个简单的平台游戏。我在制定一个好的跳跃算法时遇到了一些麻烦。在摆脱了杂乱无章的跳跃算法之后,我剩下的就是。

if (keystate.IsKeyDown(Keys.W))
{
    spritePosition.Y = spritePosition.Y - 10;
}

我意识到这是一个非常简单的开始,但任何提示都会很棒。我是一名自学成才的程序员,所以我可能会忘记一些术语,我倾向于发现查看实际代码是最好的学习方式。谢谢。

4

2 回答 2

8

当您跳跃(物理上)时,您是在向 Y 速度矢量添加一个量,而不是向您的位置矢量添加量。将您的位置移动 10 意味着您只是向上传送 10 个刻度。

尝试调整速度,然后让你的主循环改变位置。记住重力向下的加速度!

编辑:从下面的评论添加链接到物理教程。 rodedev.com/tutorials/gamephysics

于 2012-11-28T14:45:01.043 回答
0

尝试以下操作:

if(Input.GetKeyDown(KeyCode.W))
{
    // your code here
}

它将使玩家每次按下W时,他们只会去,直到他们可以W再次按下。您始终可以设置跳跃率并使其每秒钟只能跳跃一次。

于 2016-09-20T04:22:54.123 回答