Bewegung eines Balles in Richtung Mouse: Unterschied zwischen den Versionen

Aus DDSWiki
Wechseln zu: Navigation, Suche
(Der Code zum selbst Ausprobieren)
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 1: Zeile 1:
 
{{#ev:youtube|https://youtu.be/LTma1snjVrU}}
 
{{#ev:youtube|https://youtu.be/LTma1snjVrU}}
 +
 +
= Der Code zum selbst Ausprobieren =
 +
<pre>
 +
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;
 +
    }     
 +
  }
 +
 
 +
}
 +
</pre>

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