float [] x,y,d;
float [] vx,vy;
float [] x1,y1,d1;
float [] vx1,vy1;
void setup(){
size(800,800);
x = new float[5];
y = new float[5];
d = new float[5];
vx = new float[5];
vy = new float[5];
x1 = new float[5];
y1 = new float[5];
d1 = new float[5];
vx1 = new float[5];
vy1 = new float[5];
for(int i=0; i<5; i++){
x[i] = random(width);
y[i] = random(height);
d[i] = random(4);
x1[i] = random(width);
y1[i] = random(height);
d1[i] = random(4);
vx[i] = random(-10,10);
vy[i] = random(-10,10);
vx1[i] = random(-10,10);
vy1[i] = random(-10,10);
}
}
void draw() {
background(#0799E5);
for(int i=0; i<5; i++){
vichea(x[i], y[i], 5);
vichea1(x1[i], y1[i], d1);
x[i] += vx[i];
y[i] += vy[i];
x1[i] += vx1[i];
y1[i] += vy1[i];
if(x[i]>width x[i]<0) {vx[i] = -vx[i]; }
if(y[i]>width y[i]<0) {vy[i] = -vy[i]; }
if(x1[i]>width x1[i]<0) {vx1[i] = -vx1[i]; }
if(y1[i]>width y1[i]<0) {vy1[i] = -vy1[i]; }
} else if(i == 3) {
x[i] = mouseX;
y[i] = mouseY;
}
if (i<5) vichea(x[i], y[i], d[i]);
else vichea1 (x1[i], y1[i], d1);
}
}
void keyPressed() {
for(int i=0; i<5; i++){
if (key == 'a') x[i] -= 8;
else if (key == 'd') x[i] += 8;
else if (key == 'w') y[i] -= 8;
else if (key == 's') y[i] += 8;
else {
x1[i] = mouseX;
y1[i] = mouseY;
}
}
}
我不知道这有什么问题
您的代码中似乎存在一些语法错误和逻辑问题。让我们一步步看一下代码并解决问题:
在
draw()
功能中:
x[i]
和y[i]
是否大于width
或小于0
的条件不正确。正确的语法应该是 (x[i] > width || x[i] < 0)
。y[i]
。else if(i == 3)
块未正确对齐和放置。它在循环之外,正确的缩进应该在循环内。在
draw()
函数中,在条件 }
之后有一个额外的右大括号 (if (i<5) vichea(x[i], y[i], d[i]);
)。该支架应该被移除。
函数
vichea1(x1[i], y1[i], d1);
不应放置在循环之外。相反,它应该位于循环内部,您当前正在调用 vichea(x[i], y[i], d[i]);
。
在
keyPressed()
函数中,您设置 x1[i]
和 y1[i]
的块应该位于循环内部,就像在其他情况下一样。
这是代码的更正版本:
void setup() {
// Your setup code remains the same
}
void draw() {
background(#0799E5);
for (int i = 0; i < 5; i++) {
vichea(x[i], y[i], 5);
vichea1(x1[i], y1[i], d1[i]);
x[i] += vx[i];
y[i] += vy[i];
x1[i] += vx1[i];
y1[i] += vy1[i];
if (x[i] > width || x[i] < 0) { vx[i] = -vx[i]; }
if (y[i] > width || y[i] < 0) { vy[i] = -vy[i]; }
if (x1[i] > width || x1[i] < 0) { vx1[i] = -vx1[i]; }
if (y1[i] > width || y1[i] < 0) { vy1[i] = -vy1[i]; }
if (i == 3) {
x[i] = mouseX;
y[i] = mouseY;
}
}
}
void keyPressed() {
for (int i = 0; i < 5; i++) {
if (key == 'a') x[i] -= 8;
else if (key == 'd') x[i] += 8;
else if (key == 'w') y[i] -= 8;
else if (key == 's') y[i] += 8;
else {
x1[i] = mouseX;
y1[i] = mouseY;
}
}
}
确保在这些更正后测试代码。如果您遇到任何其他问题或错误,请随时寻求帮助!