Jump handling and gravity
Posted
by
sprawl
on Game Development
See other posts from Game Development
or by sprawl
Published on 2012-11-13T03:12:13Z
Indexed on
2012/11/13
5:17 UTC
Read the original article
Hit count: 330
I'm new to game development and am looking for some help on improving my jump handling for a simple side scrolling game I've made. I would like to make the jump last longer if the key is held down for the full length of the jump, otherwise if the key is tapped, make the jump not as long. Currently, how I'm handling the jumping is the following:
Player.prototype.jump = function () {
// Player pressed jump key
if (this.isJumping === true)
{
// Set sprite to jump state
this.settings.slice = 250;
if (this.isFalling === true)
{
// Player let go of jump key, increase rate of fall
this.settings.y -= this.velocity;
this.velocity -= this.settings.gravity * 2;
}
else
{
// Player is holding down jump key
this.settings.y -= this.velocity;
this.velocity -= this.settings.gravity;
}
}
if (this.settings.y >= 240)
{
// Player is on the ground
this.isJumping = false;
this.isFalling = false;
this.velocity = this.settings.maxVelocity;
this.settings.y = 240;
}
}
I'm setting isJumping on keydown and isFalling on keyup. While it works okay for simple use, I'm looking for a better way handle jumping and gravity. It's a bit buggy if the gravity is increased (which is why I had to put the last y setting in the last if condition in there) on keyup, so I'd like to know a better way to do it. Where are some resources I could look at that would help me better understand how to handle jumping and gravity? What's a better approach to handling this? Like I said, I'm new to game development so I could be doing it completely wrong. Any help would be appreciated.
© Game Development or respective owner