mirror of
https://github.com/processing/processing4.git
synced 2026-01-30 11:51:54 +01:00
109 lines
2.1 KiB
Java
109 lines
2.1 KiB
Java
import processing.core.*;
|
|
|
|
import java.applet.*;
|
|
import java.awt.*;
|
|
import java.awt.image.*;
|
|
import java.awt.event.*;
|
|
import java.io.*;
|
|
import java.net.*;
|
|
import java.text.*;
|
|
import java.util.*;
|
|
import java.util.zip.*;
|
|
import java.util.regex.*;
|
|
|
|
public class Rollover extends PApplet {
|
|
|
|
/**
|
|
* Rollover.
|
|
*
|
|
* Roll over the colored squares in the center of the image
|
|
* to change the color of the outside rectangle.
|
|
*/
|
|
|
|
|
|
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
|
|
|
|
int rectColor;
|
|
int circleColor;
|
|
int baseColor;
|
|
|
|
boolean rectOver = false;
|
|
boolean circleOver = false;
|
|
|
|
public void setup()
|
|
{
|
|
size(200, 200);
|
|
smooth();
|
|
rectColor = color(0);
|
|
circleColor = color(255);
|
|
baseColor = color(102);
|
|
circleX = width/2+circleSize/2+10;
|
|
circleY = height/2;
|
|
rectX = width/2-rectSize-10;
|
|
rectY = height/2-rectSize/2;
|
|
ellipseMode(CENTER);
|
|
}
|
|
|
|
public void draw()
|
|
{
|
|
update(mouseX, mouseY);
|
|
|
|
noStroke();
|
|
if (rectOver) {
|
|
background(rectColor);
|
|
} else if (circleOver) {
|
|
background(circleColor);
|
|
} else {
|
|
background(baseColor);
|
|
}
|
|
|
|
stroke(255);
|
|
fill(rectColor);
|
|
rect(rectX, rectY, rectSize, rectSize);
|
|
stroke(0);
|
|
fill(circleColor);
|
|
ellipse(circleX, circleY, circleSize, circleSize);
|
|
}
|
|
|
|
public 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;
|
|
}
|
|
}
|
|
|
|
public 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;
|
|
}
|
|
}
|
|
|
|
public 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;
|
|
}
|
|
}
|
|
|
|
static public void main(String args[]) {
|
|
PApplet.main(new String[] { "Rollover" });
|
|
}
|
|
}
|