我发现很难理解数组对象。在这种情况下,我不知道为什么 'wal[i].walk();' 被视为空指针异常。
walker[] wal;
int num= 70;
void setup() {
size(800, 600);
wal = new walker[num];
background(255);
}
void draw() {
for (int i = 0; i < num; i++) {
wal[i].walk();
wal[i].display();
}
}
class walker {
int x, y;
float r, g, b;
walker(float red, float green, float blue) {
x = width/2;
y = height/2;
r = red;
g= green;
b= blue;
}
void walk() {
int choice = int(random(4));
if (choice == 0) {
x++;
}
else if (choice == 1) {
x--;
}
else if (choice == 2) {
y++;
}
else {
y--;
}
x = constrain(x, 0, width-1);
y = constrain(y, 0, height-1);
}
void display() {
stroke(r, g, b);
point(x, y);
}
}
然后我添加了一些填充文本,因为我被告知我已经发布了太多的代码,即使代码上方的文本充分解释了问题而不会成为光顾或偏离主题。