处理 - 将 hitTest 和 mousePressed 添加到具有 100 个球的动画中

问题描述

我想创建一个球对象的 ArrayList,它应该在循环中直到有 100 个。

现在我的问题是:我必须实现一个函数 hitTest,这样当你点击一个球时它就会被移除。在同一个位置上,应该会出现两个球,它们朝不同的方向。

有人可以帮我吗?我很失落...

这是我目前的代码:

Ball b; 
ArrayList<Ball> balls;

void setup() { 
  size(800,800); 
  balls = new ArrayList<Ball>(); 
  for (int i = 0; i<100; i++) { 
    drawBall();
  }
}

void draw() { 
  background(255); 
  //b.update(); 
  for (int i= 0; i<balls.size(); i++) { 
    balls.get(i).update();
  }
}

void drawBall() { 
  Ball b = new Ball(); 
  balls.add(b);
}

class Ball { 
  private float x; 
  private float y; 
  private float ballSize; 
  private float dirX; 
  private float dirY; 
  private boolean moving = true; 
  Ball() { 
    this.x = width/2; 
    this.y = height/2; 
    this.ballSize = random(10.0,30.0); 
    this.dirX = random(-3.0,3.0); 
    this.dirY = random(-3.0,3.0); 
    if (this.dirX<1.0 && this.dirX>1.0)  //1 statt -1 macht zufälliger { this.dirX = 1.0; } 
      if (this.dirY<1.0 && this.dirY>1.0) { 
        this.dirY = 1.0;
      }
  }

  public void update() { 
    stroke(255); 
    fill(random(255),random(255),random(255)); 
    ellipse( this.x,this.y,this.ballSize,this.ballSize); 
    if (this.moving == true) { 
      this.x += this.dirX; 
      this.y += this.dirY;
    } 
    if (this.x+ this.ballSize/2> width ||this.x- this.ballSize/2<0) { 
      this.dirX= dirX*-1;
    } 
    if (this.y+ this.ballSize/2> height ||this.y- this.ballSize/2<0) { 
      this.dirY= dirY*-1;
    }
  }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)