Channel ch; boolean bover = false; boolean locked = false; int bdifx = 0; int bdify = 0; void setup() { size(200, 200); smooth(); noStroke(); ch = new Channel(100,100); } void draw() { background(0); ch.display(); } void mousePressed() { if((mouseX >=(ch.x-30))&&(mouseX<=ch.x+30)&&(mouseY>=(ch.y-30))&&(mouseY<=ch.y+30)) { locked = true; ch.glow(); bdifx = mouseX-ch.x; bdify = mouseY-ch.y; } else { locked = false; } } void mouseDragged() { if(locked) ch.move(mouseX-bdifx,mouseY-bdify); } void mouseReleased() { locked = false; ch.removeGlow(); } class ChannelCircle { int x; int y; int r; color c; ChannelCircle(color colorcode, int radius, int x_coordinate, int y_coordinate) { x = x_coordinate; y = y_coordinate; r = radius; c = colorcode; } void display() { fill(c); ellipse(x,y,r,r); } void move(int x_coordinate, int y_coordinate) { x = x_coordinate; y = y_coordinate; } } class Channel { int x; int y; ChannelCircle c1; ChannelCircle c2; ChannelCircle c3; ChannelCircle c4; int r1; int r2; int r3; int r4; Channel(int xc,int yc) { x = xc; y = yc; r1 = 30; r2 = 40; r3 =50; r4 =60; c1 = new ChannelCircle(color(0,65,81), r1, xc,yc); c2 = new ChannelCircle(color(54,120,136), r2, xc,yc); c3 = new ChannelCircle(color(0,65,81), r3, xc,yc); c4 = new ChannelCircle(color(82,81,0), r4, xc,yc); } void display() { c4.display(); c3.display(); c2.display(); c1.display(); } void move(int xc, int yc) { x =xc; y = yc; c1.move(xc,yc); c2.move(xc,yc); c3.move(xc,yc); c4.move(xc,yc); } void glow() { c4.r = 60; c4.c = color(245,157,42); } void removeGlow() { c4.r = 60; c4.c = color(82,81,0); } }