Code Mon Apr 20
Class Code - See Tabs:
//Main Tab
//Make objects, objects call methods
//Global Variables
ButtonGroup btnGroup; //will hold 4 pattern buttons
Button clearButton;//declare the variable as global - btn is null
color backgroundColor;
Pattern currentPattern; //pointer variable keeps track of active Pattern
Pattern eraserPattern; //has a PShape circle and background fillColor
void setup() {
size( 800, 800);
colorMode(HSB, 360, 100, 100);
backgroundColor = color( 300);
background( backgroundColor);
// Button( float x, float y, float w, float h, String label )
clearButton = new Button( 10, 450, 100, 100, "Clear"); //initialize - move to bottom
Button[] btnArray = new Button[4]; //declare and initialize button array
btnArray[0] = new Button( 10, 10, 100, 100, "Eraser");
PImage img1 = loadImage( "pattern1Btn.png"); //file name with extension
btnArray[1] = new PImageButton( 10, 120, 100, 100, img1);
btnArray[2] = new Button( 10, 230, 100, 100, "Pattern2");
btnArray[3] = new Button( 10, 340, 100, 100, "Pattern3");
btnGroup = new ButtonGroup( btnArray );
//Logic for patterns
PShape s0 = createShape( ELLIPSE, 0,0, 50, 50);
eraserPattern = new Pattern( s0 );
eraserPattern.fillColor = color(280, 100, 100);//start with Purple
currentPattern = eraserPattern;
} // end setup
void draw( ) {
if( mousePressed){
translate( mouseX, mouseY);
displayPattern( );
resetMatrix();
}
displayButtons(); //do after drawing patterns
} //end draw
void mouseClicked( ) {
boolean isChanged = btnGroup.clicked( mouseX, mouseY);
if( isChanged){
changePattern();
}
clearButton.clicked( mouseX, mouseY);
if( clearButton.selected ){
clearCanvas();
clearButton.reset();
}
} //end mouseClicked
void changePattern(){
//TODO add logic to connect buttons to patterns
//activeBtnIndex will let us determine which pattern should be the currentPattern
}
void displayPattern(){
if( currentPattern == eraserPattern){
currentPattern.fillColor = eraserPattern.fillColor;
currentPattern.strokeColor = backgroundColor;
}
currentPattern.display(); //sliders will set colors for other patterns
}
void clearCanvas(){
//TODO add code to draw a rectangle over the full canvas using background color
fill( backgroundColor);
}//end clearCanvas
void displayButtons(){
fill(0);
rect( 0,0, 120, height);//background of menu
btnGroup.display();
clearButton.display();
} //end displayButtons
Last updated
Was this helpful?