Mouse conducts Ellipse

Click on the stage to make the object follow the mouse

float sollPosX, sollPosY;  //zielposition wird bei mousklicken gesetzt
float posX, posY;  //aktuelle position der ellipse die sich dem zielpunkt nähert
 
void setup(){
  size(600, 600);
  smooth();
 
  posX = 0;
  posY = 0;
}
 
void draw(){
  background(255);
 
  //bei jedem draw() aufruf wird die position um 0.01 * Entfernugn-zum-Ziel gesetzt
  posX = posX + 0.01 * (sollPosX - posX);
  posY = posY + 0.01 * (sollPosY - posY);
 
  //ellispe an ihre aktuelle Position zeichnen
  stroke(0);
  ellipse(posX, posY, 20, 20);
 
  //zeichnet ein Kreuz an die Zielposition
  cross(sollPosX, sollPosY, 5);
}
 
void mousePressed(){
  //einmal beim klicken aufgerufen
  //setzt zielpunkt auf aktuelle mouse Position
  sollPosX = mouseX;
  sollPosY = mouseY;
}
 
void cross(float _x, float _y, float s){
  //setzt den strich rot
  stroke(255, 0, 0);
  //fügt eine neue Matrix ein
  pushMatrix();
  //setzt den nullpunkt der matrix auf den
  //übergeben wert _x/_y
  translate(_x, _y);
  //zeichnet ein kreuz durch den Ursprung des Koordinatensystems
  line(-s, s, s, -s);
  line(s, s, -s, -s);
  //schliesst die Matrix wieder und beeinflusst dadurch
  //nicht darauf gezeichnete objekte
  popMatrix();
}
12.06.2010 | admin |