我的程序向后存储我的数组

时间:2014-10-13 01:31:53

标签: arrays processing record

我正在使用名为" Processing"写这段代码。当您拖动鼠标时,代码应该记录在数组中的鼠标坐标,然后当您释放鼠标时,它将在数组中存储的坐标路径后面显示一个圆圈,但是现在它会从当时播放圆圈我停止拖动鼠标到我开始拖动的地方。这应该是另一种方式,但是我已经尝试了很多相反的方法,但我做的事似乎没有用:/

如果你能告诉我它真的很有帮助!我确定我错过了一些非常明显的东西。

int num = 100;
int[] x = new int[num];
int[] y = new int[num];
boolean released = false;
int arrayIndex;
boolean drag = false;

void setup() {
  size(600, 600);
  noStroke();
  smooth();
  fill(255, 102);
}

void draw() {
  background(0);
  if (released==true){
      arrayIndex= (arrayIndex+1)%100;
      ellipse(x[arrayIndex],y[arrayIndex],20,20);  

  }

}


void mouseDragged(){
  drag=true;
  x[0] = mouseX;
  y[0] = mouseY;
  for (int i = num - 1; i > 0; i--) {
    x[i] = x[i-1];
    y[i] = y[i-1];
  }



}

void mouseReleased(){
 released=true;
}

1 个答案:

答案 0 :(得分:0)

如你所指出的那样,从头到头添加坐标,从头到尾添加读取形式。因此,使用frameCount或中间变量...

来反转显示迭代

使用frameCount:

int num = 100;
int[] x = new int[num];
int[] y = new int[num];
boolean released = false;
int arrayIndex;
boolean drag = false;

void setup() {
  size(600, 600);
  noStroke();
  smooth();
  fill(255, 102);
}

void draw() {
  background(0);
  if (released==true){
      arrayIndex= (num-1) - (frameCount+1)%100;
      ellipse(x[arrayIndex],y[arrayIndex],20,20);  

  }

}


void mouseDragged(){
  drag=true;
  x[0] = mouseX;
  y[0] = mouseY;
  for (int i = num - 1; i > 0; i--) {
    x[i] = x[i-1];
    y[i] = y[i-1];
  }



}

void mouseReleased(){
 released=true;
}

使用另一个var:

int num = 100;
int[] x = new int[num];
int[] y = new int[num];
boolean released = false;
int arrayIndex;
boolean drag = false;

void setup() {
  size(600, 600);
  noStroke();
  smooth();
  fill(255, 102);
}

void draw() {
  background(0);
  if (released==true){
      arrayIndex= (arrayIndex+1)%100;
      int reversed = (num-1) - arrayIndex; 
      ellipse(x[reversed],y[reversed],20,20);  

  }

}


void mouseDragged(){
  drag=true;
  x[0] = mouseX;
  y[0] = mouseY;
  for (int i = num - 1; i > 0; i--) {
    x[i] = x[i-1];
    y[i] = y[i-1];
  }



}

void mouseReleased(){
 released=true;
}