你如何让一些东西移动到之前鼠标按下的位置?

How do you make something move to the previous mousepressed location?

这很基本,但是例如,我画了一个矩形并按下某处 (x,y),没有任何反应,但是当我再次按下其他地方 (x2, y2) 时,该矩形将移动到我按下的第一个位置(x,y)。所以无论我按下哪里,矩形都会移动到我按下的最后一个地方。

我有它,所以矩形出现在我按下的任何地方,而不是以前的位置。

void setup(){
  background(234);
  size(400, 400);
}

void draw(){
}

void mousePressed(){
  background(234);
  rect(mouseX, mouseY, 20, 20);
}

您需要做的就是创建自己的变量,将之前单击的位置存储在其中,然后使用它来绘制矩形。

float targetX;
float targetY;

void setup(){
  background(234);
  size(400, 400);
}

void draw(){
}

void mousePressed(){
  background(234);
  rect(targetX, targetY, 20, 20);
  targetX = mouseX;
  targetY = mouseY;
}

请注意,您必须在第一次点击时决定您希望它们成为什么,因为您还没有之前点击过的位置。默认是左上角的0, 0