How to make another ball after a click

class Ball {
	float x = random(0, width);
	float y = 100;
  float ySpeed = 1;

void move() {
	y += ySpeed
void show() {
ellipse(x, y, 20, 20);

Ball[] balls = new Ball [1];

void setup() {
	size(640, 360);
	for (int i = 0; i < balls.length; i++;) {
		balls[i] = new Ball();


void draw() {
	for (int i = 0; i < balls.length; i++) {
	if (mousePressed) {
//dont know what code I can add here or if I have to do something else

something like balls=
(Balls[]) append(balls, new Ball(….));

Check reference for append

Alternatively check Arraylist

I tried but I don’t understand.
If I use Arraylist do I have to change my entire code?

What don’t you understand

Just read the reference and type my line…

For ArrayList you only change a few lines

Read the reference about arraylist but array will do for now

Hi @Kenga123456,

I would advise you to use an ArrayList as it is easy to add or delete elements from it.
Please check this example to get a feel of how to use it and add new elements after a mouse click event:

ArrayList <PVector> balls;

void setup() {
  size(1000, 600);
  balls = new ArrayList<PVector>();

void draw() {
  for (int i = 0; i < balls.size(); i++) {
    ellipse(balls.get(i).x, balls.get(i).y, 20, 20);

void mousePressed() {
  balls.add(new PVector(mouseX, mouseY));