# Wie kann ich die Kreise nach jeweils 1s spawnen lassen? Processing



## iamthatoli (17. Jun 2020)

Hallo Leute.
Ich arbeite gerade an einem Minigame. Könnte mir jemand helfen ich will die Kreise nach jeweils 1s spawnen lassen.

```
//
Array deklarieren
float[] x;
float[] y;
float xDir[];
float yDir[];

float xrect = random(100, 350);
float yrect = random(100, 350);

//framecount
int BallsNumber = 5;

void setup() {
  //Fenster
  size(500, 500);



  //Array beschreiben
  x = new float[BallsNumber];
  y = new float[BallsNumber];
  xDir = new float[BallsNumber];
  yDir = new float[BallsNumber];

  //Bälle spawnen
  spawn();
}

void draw() {
  //Farbe
  background(0);
  ranrect();

  costumcircle();
 
}

//-------------------------------------------------------------------------------------
//                                 Unterprogramme
//-------------------------------------------------------------------------------------
void spawn() {
  //alle Bälle random spawnen lassen
  for (int i = 0; i < BallsNumber; i++) {
    x[i] = random(25, width-25);
    y[i] = random(25, height-25);
    //alle Bälle random Geschwindigkeit und Richtung
    xDir[i] = random(-5, 5);
    yDir[i] = random(-5, 5);
  }
}
//--------------------------------Kreiseigenschaften-----------------------------------
void costumcircle() {
  //Kreise
  for (int i = 0; i < BallsNumber; i++) {
    stroke(0, 255, 0);
    strokeWeight(5);
    fill(255, 0, 0);
    ellipse(x[i], y[i], 50, 50);

    //Kreis bewegen
    x[i] = x[i] + xDir[i];
    y[i] = y[i] + yDir[i];

    //Kreis Richtung ändern

    if (x[i] < 25 || x[i] > width-25) {
      xDir[i] = -xDir[i];
    }
    if (y[i] < 25 || y[i] > height-25) {
      yDir[i] = -yDir[i];
    }
  }
}

//-------------------------------------------------------------------------------------

void ranrect() {
  rect(xrect, yrect, 50, 50);
}


void mousePressed() {
  for (int i = 0; i < BallsNumber; i++) {
    float dist = sqrt((x[i] - mouseX)*(x[i] - mouseX) +(y[i]-mouseY)*(y[i] - mouseY));
    if (dist < 25) {
      x[i] = -100;
      y[i] = -100;
    }
  }
}
```


----------



## realodds (18. Jun 2020)

Vielleicht mit


```
Timer t = new Timer();
t.scheduleAtFixedRate(new TimerTask(){
    
    @Override
    public void run(){
        spawn();
    }
    
}, 0, 1000);
```
Die erste Zahl steht für den delay, wenn es aufgerufen wird und die zweite Zahl steht für die Rate (alles in millis)


----------

