mirror of
https://github.com/dyne/FreeJ.git
synced 2026-02-05 12:39:15 +01:00
processing-js 0.4 has been merged in some relevant parts basic and topic scripts added for test color handling fixed, more scripts show up now
93 lines
1.8 KiB
Plaintext
93 lines
1.8 KiB
Plaintext
int rectX, rectY; // Position of square button
|
|
int circleX, circleY; // Position of circle button
|
|
int rectSize = 50; // Diameter of rect
|
|
int circleSize = 53; // Diameter of circle
|
|
color rectColor, circleColor, baseColor;
|
|
color rectHighlight, circleHighlight;
|
|
color currentColor;
|
|
boolean rectOver = false;
|
|
boolean circleOver = false;
|
|
|
|
void setup()
|
|
{
|
|
size(200, 200);
|
|
smooth();
|
|
rectColor = color(0);
|
|
rectHighlight = color(51);
|
|
circleColor = color(255);
|
|
circleHighlight = color(204);
|
|
baseColor = color(102);
|
|
currentColor = baseColor;
|
|
circleX = width/2+circleSize/2+10;
|
|
circleY = height/2;
|
|
rectX = width/2-rectSize-10;
|
|
rectY = height/2-rectSize/2;
|
|
ellipseMode(CENTER);
|
|
}
|
|
|
|
void draw()
|
|
{
|
|
update(mouseX, mouseY);
|
|
background(currentColor);
|
|
|
|
if(rectOver) {
|
|
fill(rectHighlight);
|
|
} else {
|
|
fill(rectColor);
|
|
}
|
|
stroke(255);
|
|
rect(rectX, rectY, rectSize, rectSize);
|
|
|
|
if(circleOver) {
|
|
fill(circleHighlight);
|
|
} else {
|
|
fill(circleColor);
|
|
}
|
|
stroke(0);
|
|
ellipse(circleX, circleY, circleSize, circleSize);
|
|
}
|
|
|
|
void update(int x, int y)
|
|
{
|
|
if( overCircle(circleX, circleY, circleSize) ) {
|
|
circleOver = true;
|
|
rectOver = false;
|
|
} else if ( overRect(rectX, rectY, rectSize, rectSize) ) {
|
|
rectOver = true;
|
|
circleOver = false;
|
|
} else {
|
|
circleOver = rectOver = false;
|
|
}
|
|
}
|
|
|
|
void mousePressed()
|
|
{
|
|
if(circleOver) {
|
|
currentColor = circleColor;
|
|
}
|
|
if(rectOver) {
|
|
currentColor = rectColor;
|
|
}
|
|
}
|
|
|
|
boolean overRect(int x, int y, int width, int height)
|
|
{
|
|
if (mouseX >= x && mouseX <= x+width &&
|
|
mouseY >= y && mouseY <= y+height) {
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
boolean overCircle(int x, int y, int diameter)
|
|
{
|
|
float disX = x - mouseX;
|
|
float disY = y - mouseY;
|
|
if(sqrt(sq(disX) + sq(disY)) < diameter/2 ) {
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|