Processing代码无法运行,多次调试未果,请求问题排查指导
Processing代码错误分析与修复
一、核心语法错误
- 逻辑运算符缺失:所有边界判断的
if语句中缺少||(逻辑或),例如if(x[i]>width x[i]<0)应改为if(x[i]>width || x[i]<0) - 代码块嵌套错误:
else if(i == 3)被写在for循环的闭合大括号外,此时i的值恒为5,永远不会触发判断。需将该判断移至for循环内部,且改为if(i == 3)(单独条件判断) - 函数参数错误:调用
vichea1(x1[i], y1[i], d1)时,传入的d1是数组,但函数需要单个float值,应改为d1[i];循环外的冗余绘制代码存在数组索引越界(i=5时访问x[5]超出数组长度),直接删除该段代码 - 多余闭合大括号:
draw函数末尾多了一个},破坏语法结构 - 缺失自定义函数实现:代码调用了
vichea和vichea1但未定义,需补充这两个绘制函数的实现逻辑
二、逻辑错误修正
- 边界判断错误:y轴边界应使用
height而非width,例如if(y[i]>height || y[i]<0) - 数组越界风险:删除
for循环外的冗余绘制代码,避免访问超出数组范围的索引
三、修复后的完整代码
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], d[i]); 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]>height || y[i]<0) {vy[i] = -vy[i]; } if(x1[i]>width || x1[i]<0) {vx1[i] = -vx1[i]; } if(y1[i]>height || y1[i]<0) {vy1[i] = -vy1[i]; } // 将i==3的判断移至循环内部 if(i == 3) { x[i] = mouseX; y[i] = mouseY; } } } // 补充自定义绘制函数示例(绘制圆形) void vichea(float px, float py, float size){ fill(255); ellipse(px, py, size*10, size*10); } void vichea1(float px, float py, float size){ fill(255, 0, 0); ellipse(px, py, size*10, size*10); } 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; } } }
内容的提问来源于stack exchange,提问作者Leng Chanvichea
相关产品推荐
相关产品推荐

