Bewegung eines Balles in Richtung Mouse: Unterschied zwischen den Versionen

Aus DDSWiki
Wechseln zu: Navigation, Suche
(Der Code zum selbst Ausprobieren)
 
Zeile 37: Zeile 37:
 
   }  
 
   }  
 
    
 
    
 +
 
   void bewegen() {
 
   void bewegen() {
  PVector mouse = new PVector(mouseX, mouseY);
+
    PVector mouse = new PVector(mouseX, mouseY);
  mouse.sub(ort);
+
    mouse.sub(ort);
  mouse.setMag(20);
+
    mouse.setMag(20);
  beschleunigung = mouse;
+
    beschleunigung = mouse;
  //beschleunigung = PVector.random2D();
+
    //beschleunigung = PVector.random2D();
  geschwindkeit.add(beschleunigung);
+
    geschwindkeit.add(beschleunigung);
  geschwindkeit.limit(2);
+
    geschwindkeit.limit(2);
  ort = ort.add(geschwindkeit);
+
    ort = ort.add(geschwindkeit);
 
   }
 
   }
 
    
 
    

Aktuelle Version vom 29. März 2020, 15:56 Uhr

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;
    }       
  }
  
}