We are about to switch to a new forum software. Until then we have removed the registration on this forum.
Hello,
I have an animation of an windmill which I would like to turn on and off by keys. I'd tried to control the animation with the with loop and noLoop. Unfortunately, I achieve only that the wheel turns and then to stop it but I can't start it again. Below you find the main code and the class wind mill.
Thank you!
* main
//Declaration variables
PImage windmillBase;
PImage windmillWheel;
boolean rotation1 = true;
boolean rotation2 = true;
windmill windmill;
windmill windmill2;
void setup()
  {
    size (840,595);
        //draw background  
    background(#BCFCA1);
     // Load images
     windmillBase=loadImage("pic_windmill_1.png");
     windmillWheel=loadImage("pic_windmill_2.png");
     // call classes + parameter
     windmill = new windmill (550, 500); // new instanz windmill base 1
     windmill2 = new windmill (700, 500); // new instanz windmill 2
  }
void draw(){ 
    imageMode(CENTER);
//draw windmill 1
    if (rotation1){
      windmill.drawWindmill();
      windmill.rotationWindmill();
      loop();  
  }
    else{
      windmill.drawWindmill();
      windmill.rotationWindmill();
      noLoop(); 
  }
     //draw windmill 2
    if (rotation2){
      windmill.drawWindmill();
      windmill.rotationWindmill2();
      loop();  
  }
    else{
      windmill.drawWindmill();
      windmill.rotationWindmill2();
      noLoop(); 
  }
}
*class windmill
public class windmill
{
int xpos;
int ypos;
//declaration for rotation
float angle; 
 // constructor + parameter of windmill base
  windmill(int windmillx, int windmilly){
  xpos = windmillx;
  ypos = windmilly;
}
void drawWindmill(){
//draw windmill base to screen
image(windmillBase,xpos,ypos);
}
void rotationWindmill()
  {
    pushMatrix();
    fill(#BCFCA1);
    noStroke();
    rect(500,390,100,100);
    translate(549,442); // define center
    rotate(radians(angle));
    image(windmillWheel,0,0,95,95);
    angle += 1;
    popMatrix();
    loop();
  }
  void rotationWindmill2()
  {
    pushMatrix();
    fill(#BCFCA1);
    noStroke();
    rect(650,390,100,100);
    translate(699,442); // define center
    rotate(radians(angle));
    image(windmillWheel,0,0,95,95);
    angle += 1;
    popMatrix();
  }
}
Answers
Read loop()'s reference to understand it correctly:
http://processing.org/reference/loop_.html
If you wanna assign a particular key as a windmill switch, you should do something like this:
Thank you, works well now.