如何让我的精灵跳? (XNA,C#)

时间:2012-11-28 14:41:30

标签: c# xna sprite

我一直在使用XNA进行简单的平台游戏。我在制定一个好的跳跃算法时遇到了一些麻烦。在摆脱了跳跃算法的凌乱半完成版本后,我剩下的就是。

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

我意识到这是一个非常简单的开始,但任何提示都会很棒。我是一名自学成才的程序员,因此我可能会遗漏一些术语,我倾向于将实际代码看作是最好的学习方法。谢谢。

2 个答案:

答案 0 :(得分:8)

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

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

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

答案 1 :(得分:0)

请尝试以下操作:

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

每次玩家按下W时,它们才能进行,直到他们再次按W为止。您可以随时设置跳跃率,并使其只能每隔一秒钟跳一次。