Hello, what is wrong with this code? Why player (black square) wont move in 4 directions, but only in 2.
Postac postac = new Postac();
boolean[] chodzenie = new boolean[4];              //UP DOWN LEFT RIGHT
/*                                                   0  1    2    3    */
void setup() {
  size(600, 600, P2D);
  for (int i = 0; i < chodzenie.length; i++) {
    chodzenie[i] = false;
  }
 
  postac.location = new PVector(width/2, height/2);
  postac.velocity = new PVector(0, 0);
}
void draw() {
  background(190);
  postac.display();
  postac.chodzenie();
}
void keyPressed() {
  if (key == CODED && keyCode == UP)    chodzenie[0] = true;
  if (key == CODED && keyCode == DOWN)  chodzenie[1] = true;
  if (key == CODED && keyCode == LEFT)  chodzenie[2] = true;
  if (key == CODED && keyCode == RIGHT) chodzenie[3] = true;
}
void keyReleased() {
  if (key == CODED && keyCode == UP)    chodzenie[0] = false;
  if (key == CODED && keyCode == DOWN)  chodzenie[1] = false;
  if (key == CODED && keyCode == LEFT)  chodzenie[2] = false;
  if (key == CODED && keyCode == RIGHT) chodzenie[3] = false;
}
void mousePressed() {
}
class Postac {
  PVector location, velocity;
  int a = 20;
  void display() {
    fill(0);
    rect(location.x, location.y, a, a);
    location.add(velocity);
    println("0" + chodzenie[0] + " 1" + chodzenie[1] + " 2" + chodzenie[2] + " 3" + chodzenie[3]);
    println(velocity);
  }
  void chodzenie() {
    if (chodzenie[0] == true) {
      velocity.y = -1;
    } else if (chodzenie[0] == false) {
      velocity.y = 0;
    }
    if (chodzenie[1]) { 
      velocity.y =  1;
    } else if (!chodzenie[1]) {
      velocity.y = 0;
    }
    if (chodzenie[2]) { 
      velocity.x = -1;
    } else if (!chodzenie[2]) {
      velocity.x = 0;
    }
    if (chodzenie[3]) { 
      velocity.x =  1;
    } else if (!chodzenie[3]) {
      velocity.x = 0;
    }
  }
}