有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java处理:一个对象忽略if语句

所以我有我的处理代码,除了一个PVector,它的速度不能正常工作,不能与代码的其余部分同步之外,所有的东西都在工作。该代码用于反弹球,但左上角的球没有明显的原因会从屏幕上漂走

PVector location;
PVector velocity;
PVector location2;
PVector velocity2;
PVector location3;
PVector velocity3;
PVector location4;
PVector velocity4;
int size;
int acceleration;

void setup() {
  size(640,360);
  location = new PVector(0,180);
  location2 = new PVector(640,180);
  location3 = new PVector(0,180);
  location4 = new PVector(640,180);
  velocity = new PVector(10,-18);
  velocity2 = new PVector(-10,18);
  velocity3 = new PVector(-10,18);
  velocity4 = new PVector(10,-18);
  acceleration = 1;
  size = 16;
}

void draw() {
  background(255);
  velocity.y=velocity.y+acceleration;
  velocity2.y=velocity2.y-acceleration;
  velocity3.y=velocity2.y-acceleration;
  velocity4.y=velocity4.y+acceleration;
  location.add(velocity);
  location2.add(velocity2);
  location3.add(velocity3);
  location4.add(velocity4);
  //size = size + 1;
  if ((location.x > 320) || (location.x < 0)) {
    velocity.x = velocity.x * -1;
  }
  if ((location2.x > width) || (location2.x < 320)) {
    velocity2.x = velocity2.x * -1;
  }
  if ((location3.x > 320) || (location3.x < 0)) {
    velocity3.x = velocity3.x * -1;
  }
  if ((location4.x > width) || (location4.x < 320)) {
    velocity4.x = velocity4.x * -1;
  }
  if ((location.y > height) || (location.y < 0)) {
    velocity.y = -18;
  }
  if ((location2.y > height) || (location2.y < 0)) {
    velocity2.y = 18;
  }
  if ((location3.y > height) || (location3.y < 0)) {
    velocity3.y = 18;
  }
  if ((location4.y > height) || (location4.y < 0)) {
    velocity4.y = -18;
  }

  stroke(0);
  fill(0);
  ellipse(location.x,location.y,size,size);
  ellipse(location2.x,location2.y,size,size);
  ellipse(location3.x,location3.y,size,size);
  ellipse(location4.x,location4.y,size,size);
}

共 (1) 个答案

  1. # 1 楼答案

    我唯一想知道的是你在这里

    velocity.y=velocity.y+acceleration;
    velocity2.y=velocity2.y-acceleration;
    velocity3.y=velocity2.y-acceleration;  // this should be velocity3.y-acceleration
    velocity4.y=velocity4.y+acceleration;
    

    这就是为什么复制粘贴编码通常被认为是一种代码气味