我正在尝试记录此代码中绘制的每个矩形的位置。我是初学者和我的理解,只能通过一个arraylist来完成。我不知道如何构建列表来记录矩形移动到的每个位置。这就是代码目前的样子。
Walker w;
void setup() {
size(500, 500);
w = new Walker();
background(0);
frameRate(15);
}
void draw() {
w.draw();
}
void mousePressed(){
w.mousePressed();
}
class Walker {
int x;
int y;
float direction;
Walker() {
x = width/2;
y = height/2;
}
void draw() {
rect(x, y, 10, 10);
if (direction<1) { //North
float choice = random(1);
if (choice <0.4) {
x=x+10;
} else if (choice <0.8) {
x=x-10;
} else {
y=y-10;
}
} else if (direction<2) { //South
float choice = random(1);
if (choice <0.4) {
x=x-10;
} else if (choice <0.8) {
x=x+10;
} else {
y=y+10;
}
} else if (direction<3) { // East
float choice = random(1);
if (choice < 0.4) {
y=y+10;
} else if (choice <0.8) {
y=y-10;
} else {
x=x+10;
}
} else if (direction<4) { //West
float choice = random(1);
if (choice < 0.4) {
y=y+10;
} else if (choice <0.8) {
y=y-10;
} else {
x=x-10;
}
}
}
void mousePressed() {
direction = random(4);
x = width/2;
y = height/2;
}
}
答案 0 :(得分:0)
您需要在声明方向的位置创建一个ArrayList。
ArrayList<String> previousPoints = new ArrayList<String>();
以下是您需要的导入声明:
import java.util.ArrayList;
这不是最好的方法,但是每当你移动矩形时,给定x和y坐标,你可以将它们添加到ArrayList previousPoints中,如下所示:
previousPoints.add("" + x + "," + y);
如果您在previousPoints中有所需的索引,则可以检索x和y :(示例索引为3)
String[] points = (previousPoints.get(3)).split(",");
int newX = Integer.parseInt(points[0]);
int newY = Integer.parseInt(points[1]);
我希望这有助于Yianna!
编辑:重要 - &gt;进口