# How to move an object diagonally

**URL:** <https://discourse.processing.org/t/how-to-move-an-object-diagonally/36807>\
**Category:** Beginners\
**Created:** [May 11, 2022, 12:25am UTC](https://discourse.processing.org/t/how-to-move-an-object-diagonally/36807 "2022-05-11T00:25:12Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![anonymous-54](https://avatars.discourse-cdn.com/v4/letter/a/65b543/32.png) [@anonymous-54](https://discourse.processing.org/u/anonymous-54)\
**Post date:** [May 11, 2022, 12:25am UTC](https://discourse.processing.org/t/how-to-move-an-object-diagonally/36807/1 "2022-05-11T00:25:12Z")

</div>

i would like to move an object diagonally. right now it moves up and leaves the screen with just void mousepressed, mousedragged and mousereleased

---

<div class="post-metadata">

**Author:** ![svan](https://avatars.discourse-cdn.com/v4/letter/s/82dd89/32.png) [@svan](https://discourse.processing.org/u/svan)\
**Post date:** [May 11, 2022, 1:24am UTC](https://discourse.processing.org/t/how-to-move-an-object-diagonally/36807/2 "2022-05-11T01:24:58Z")

</div>

Demonstrates using mouse coordinates to drag rectangle:

```auto
/*
 * Mouse Functions.
 * Click on rectangle and drag around screen.
 */

float x = 100;
float y = 100;
float w = 200;
float h = 100;

float xOffset = 0.0;
float yOffset = 0.0;

boolean msOver = false;
boolean selected = false;

void setup() {
  size(700, 600);
  rect(x, y, w, h);
}

void draw() {
  background(0);
  // Test if the cursor is over the rectangle
  if (mouseX >= x && mouseX <= x+w && mouseY >= y && mouseY <= y+h) {
    msOver = true;
    cursor(HAND);
    if (!selected) {
      stroke(255);
      fill(153);
    }
  } else {
    cursor(ARROW);
    stroke(153);
    fill(153);
    msOver = false;
  }
  rect(x, y, w, h);
}

void mousePressed() {
  if (msOver) {
    selected = true;
    fill(255, 255, 255);
  } else {
    selected = false;
  }
  xOffset = mouseX-x;
  yOffset = mouseY-y;
}

void mouseDragged() {
  if (selected) {
    x = mouseX-xOffset;
    y = mouseY-yOffset;
  }
}

void mouseReleased() {
  selected = false;
}

```

---

<div class="post-metadata">

**Author:** ![GoToLoop](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/gotoloop/32/86_2.png) [@GoToLoop](https://discourse.processing.org/u/GoToLoop)\
**Post date:** [May 11, 2022, 1:31am UTC](https://discourse.processing.org/t/how-to-move-an-object-diagonally/36807/3 "2022-05-11T01:31:39Z")

</div>

[Player Move](http://studio.processingtogether.com/sp/pad/export/ro.91tcpPtI9LrXp)

---

<div class="post-metadata">

**Author:** ![svan](https://avatars.discourse-cdn.com/v4/letter/s/82dd89/32.png) [@svan](https://discourse.processing.org/u/svan)\
**Post date:** [May 11, 2022, 1:51am UTC](https://discourse.processing.org/t/how-to-move-an-object-diagonally/36807/4 "2022-05-11T01:51:20Z")

</div>

With keyboard arrows the user can only get up, down, left, right - no diagonal.
