Sidescroller jump...Help!! Thx

edited August 2016 in Questions about Code

So I decided to try code a traditional jump mechanic by following a video Dan made programming in p5.js using vectors and shapes and applying forces etc. Things seemed to make sense while watching his video and so I tried coding it on Processing. So far, I can make my block fly high in the sky.

Person p;

void setup() {
  p = new Person(new PVector(50,height));

void draw() {





void gravity() {
  PVector gravity = new PVector(0, 3);

void jump() {
  if (key == 'z') {
    PVector jump = new PVector(0, -0.1);

class Person {

  PVector location;
  PVector velocity;
  PVector acceleration;

  Person(PVector l) {
    acceleration = new PVector(0,1);
    velocity = new PVector(0,0);
    location = l.get();

  void applyForce(PVector force) {
    acceleration = force;

  void update() {

  void display() {
    rect(location.x, location.y-50, 20, 50);

    void checkEdges() {

    if (location.y > height) {
      velocity.y *= -0;
      location.y = height;

So Its all relatively simple but it doesnt want to stay to the ground, it keeps going up!!. Maybe theres a better way to organize my code instead of having it laid out in such a way. If anybody can help me force that block down as it jumps I would very much appreciate it a lot. In fact, any knowledge to make my life easier about sidescrolling and platformers I would very very much appreciate it!!

Heres that dan shiffman video I referred to:


  • It's not PVector-based, but I've got this online jump sketch example:

  • edited August 2016
  • edited August 2016

    thanks Ill have a look!

    edit: i guess im thinking more of a platformer thing when the sprite/box naturally jumps ala super mario bros or any modern indie platformer. it seems really easy to implement in processing but ive hit a wall, and just not getting it.

  • This jumping method may be useful. When a key is pressed, it causes the variable loc.y to decrease and then increase, and stop when it hits the ground (there may be some mistakes in the code). PVector loc = new PVector(0, 0); boolean jump = false, standing = true, grav = false, boolean n; float yInc = 20, a = 3; if((keyPressed) && (jump == false) && (grav == false)) { jump = true; } if (jump) { grav = false; yInc--; loc.y -= yInc; } if (grav) { loc.y += a; a += 0.1; } if (standing) { grav = false; } else if (!standing) { grav = true; } if (/*box lands on ground*/) { grav = false; standing = true; jump = false; yInc = 20; a = 3; } else { standing = false; } void keyPressed() { n = true; } void keyReleased() { n = false; }

  • edited September 2016

    I haven't started this yet but I intend to write a journal about the status of my platformer. I've gotten a lot further than I anticipated and intend to show others code and design ideas etc.

Sign In or Register to comment.