I am working on my first XNA 2D game and I have a little problem. If I jump, my sprite jumps, but does not fall. And I also have one more problem: the user can hold the space bar to jump as high as he wants, and I don’t know how to keep him from doing this. Here is my code: Go to:
if (FaKeyboard.IsKeyDown(Keys.Space))
{
Jumping = true;
xPosition -= new Vector2(0, 5);
}
if (xPosition.Y >= 10)
{
Jumping = false;
Grounded = false;
}
Really simple basic gravity:
if (!Grounded && !Jumping)
{
xPosition += new Vector2(1, 3) * speed;
}
Here, where grounding is set to True or False with Collision
Rectangle MegamanRectangle = new Rectangle((int)xPosition.X, (int)xPosition.Y, FrameSizeDraw.X, FrameSizeDraw.Y);
Rectangle Block1Rectangle = new Rectangle((int)0, (int)73, Block1.Width, Block1.Height);
Rectangle Block2Rectangle = new Rectangle((int)500, (int)73, Block2.Width, Block2.Height);
if ((MegamanRectangle.Intersects(Block1Rectangle) || (MegamanRectangle.Intersects(Block2Rectangle))))
{
Grounded = true;
}
else
{
Grounded = false;
}
Grounded bool and The gravity have been tested and work. Any ideas why? Thanks in advance and feel free to ask if you need another piece of code.
source
share