PImage smilie; float angle; float omega; NUMBER_INPUT speedInput; PFont font; byte fontConstant; BUTTONS directionButton; boolean rightSpin; DROP_DOWN effectsMenu; byte effect; void setup(){ size(660,400); smilie = loadImage("smilie.png"); imageMode(CENTER); angle=1; speedInput = new NUMBER_INPUT(0, height-40, 50, 40,"dFieta/dFrame (Degress)", 2, color(255), color(200), color (255,0,0)); font = loadFont("CourierNewPSMT-37.vlw"); textFont(font,37); omega=0; fontConstant = 30; directionButton = new BUTTONS(550, 5, "-/+", color(255), color (255,0,0), 40, 80); rightSpin = true; effect=0; String [] effectsArray; effectsArray = new String [7]; effectsArray[0] = "None"; effectsArray[1] = "Red"; effectsArray[2] = "Green"; effectsArray[3] = "Blue"; effectsArray[4] = "Yellow"; effectsArray[5] = "Purple"; effectsArray[6] = "Orange"; effectsMenu = new DROP_DOWN(440, 50, 200, 40, 0, effectsArray, color(255), color(200), color(255,0,0)); } void draw(){ background(255); //ctints if (effect == 1){ tint(255,0,0); } else if (effect == 2){ tint(0,255,0); } else if (effect == 3){ tint(0,0,255); } else if (effect == 4){ tint(255,255,0); } else if (effect == 5){ tint(255,0,255); } else if (effect == 6){ tint(255,122,0); } else { tint(255,255,255); } //draw smilie pushMatrix(); translate(150,150); rotate(angle); image(smilie,0,0,300,300); popMatrix(); //return tint to normal tint(255,255,255); //Direction of the roatation and add to previous angle if (rightSpin==true){ angle+=omega; } else { angle-=omega; } if (angle>=TWO_PI){ angle-=TWO_PI; } if (angle<=-TWO_PI){ angle+=TWO_PI; } //Draw components speedInput.display(); if (speedInput.acceptKeyboard==false){ omega = radians(speedInput.return_value()); } fill(0); text("Direction:",320,5+fontConstant); directionButton.display(); fill(0); text("Tint:",320, 50+fontConstant); effectsMenu.display(); status("Frame Rate: "+str(int(frameRate))+" Frames per second"); }