Bewegung eines Balles in Richtung Mouse: Unterschied zwischen den Versionen

Aus DDSWiki
Wechseln zu: Navigation, Suche
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>

Version vom 29. März 2020, 15:55 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;
    }       
  }
  
}