Bewegung eines Balles in Richtung Mouse

Aus DDSWiki
Version vom 29. März 2020, 15:56 Uhr von FlorianG (Diskussion | Beiträge) (Der Code zum selbst Ausprobieren)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Der Code zum selbst Ausprobieren

Wanderer wandersfrau;
Wanderer wandersmann;

void setup() {
  size(400,400);
  wandersfrau = new Wanderer(200,200);
  wandersmann = new Wanderer(0,0);
}
 
void draw() {
  background(120);
  wandersfrau.bewegen();
  wandersfrau.beamen();
  wandersfrau.display();
  
  wandersmann.bewegen();
  wandersmann.beamen();
  wandersmann.display();  
}




class Wanderer {
  PVector ort;
  PVector geschwindkeit;
  PVector beschleunigung;
  
  Wanderer(float x, float y) {
    ort = new PVector(x,y);
    geschwindkeit = new PVector(-1,10);
    //beschleunigung = new PVector(0.1,0);
  } 
  

  void bewegen() {
    PVector mouse = new PVector(mouseX, mouseY);
    mouse.sub(ort);
    mouse.setMag(20);
    beschleunigung = mouse;
    //beschleunigung = PVector.random2D();
    geschwindkeit.add(beschleunigung);
    geschwindkeit.limit(2);
    ort = ort.add(geschwindkeit);
  }
  
  void display() {
    circle(ort.x, ort.y, 50);
  }
  
  void beamen() {
    if (ort.x > width) {
      ort.x = 0;
    }
    if (ort.x < 0) {
      ort.x = width;
    }  
    if (ort.y > height) {
      ort.y = 0;
    }      
    if (ort.y < 0) {
      ort.y = height;
    }       
  }
  
}