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

iamthatoli

Mitglied
Hallo Leute.
Ich arbeite gerade an einem Minigame. Könnte mir jemand helfen ich will die Kreise nach jeweils 1s spawnen lassen.
Code:
//
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;
    }
  }
}
 
Vielleicht mit

Java:
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)
 

Zurück
Oben