我不知道我的代码有什么问题我尝试了很多调试但它没有运行

问题描述 投票:0回答:1
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;

    }

  }

}

我不知道这有什么问题

java processing
1个回答
0
投票

您的代码中似乎存在一些语法错误和逻辑问题。让我们一步步看一下代码并解决问题:

  1. draw()
    功能中:

    • 检查
      x[i]
      y[i]
      是否大于
      width
      或小于
      0
      的条件不正确。正确的语法应该是
      (x[i] > width || x[i] < 0)
    • 检查条件也需要进行同样的修正
      y[i]
    • else if(i == 3)
      块未正确对齐和放置。它在循环之外,正确的缩进应该在循环内。
  2. draw()
    函数中,在条件
    }
    之后有一个额外的右大括号 (
    if (i<5) vichea(x[i], y[i], d[i]);
    )。该支架应该被移除。

  3. 函数

    vichea1(x1[i], y1[i], d1);
    不应放置在循环之外。相反,它应该位于循环内部,您当前正在调用
    vichea(x[i], y[i], d[i]);

  4. 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;
    }
  }
}

确保在这些更正后测试代码。如果您遇到任何其他问题或错误,请随时寻求帮助!

© www.soinside.com 2019 - 2024. All rights reserved.