int numStars = 25;
int starPositionX;
int starPositionY;
boolean stop = false;
boolean overSun = false;
boolean held = false;
boolean sunDone;
boolean redDone;
boolean moonDone;
boolean purpleDone;
boolean blackHoleDone;
boolean sunCheck;
boolean redCheck;
boolean moonCheck;
boolean purpleCheck;
boolean blackHoleCheck;
int newSunX = mouseX;
int newSunY = mouseY;
int newRedX = mouseX;
int newRedY = mouseY;
int newPurpleX = mouseX;
int newPurpleY = mouseY;
int newMoonX = mouseX;
int newMoonY = mouseY;
int newBlackHoleX = mouseX;
int newBlackHoleY = mouseY;
boolean sunHeld;
boolean redHeld;
boolean moonHeld;
boolean purpleHeld;
boolean blackHoleHeld;
int sunX = 360;
int sunY = 20;
int redX = 368;
int redY = 70;
int moonX = 370;
int moonY = 105;
int purpleX = 356;
int purpleY = 135;
int blackHoleX = 361;
int blackHoleY = 192;
int objectVelocity = 10;
int mouseXSun;
int mouseYSun;
int mouseXRed;
int mouseYRed;
int mouseXMoon;
int mouseYMoon;
int mouseXPurple;
int mouseYPurple;
int mouseXBlackHole;
int mouseYBlackHole;
void setup() {
size(400, 400);
rectMode(CORNER);
}
void draw() {
background(0, 0, 30);
int starPositionX = (int)random(pmouseX - 15, pmouseX + 16);
int starPositionY = (int)random(pmouseY - 15, pmouseY + 16);
starPlacement(starPositionX, starPositionY);
stroke(255);
fill(0);
rect(350, -1, 51, 401);
ellipseMode(CORNER);
//SUN
strokeWeight(2);
stroke(255, 250, 0);
fill(255, 180, 0);
ellipse(sunX, sunY, 30, 30);
//RED PLANET
stroke(110, 0, 30);
fill(175, 59, 42);
ellipse(redX, redY, 15, 15);
//MOON
stroke(84, 95, 102);
fill(200);
ellipse(moonX, moonY, 10, 10);
//BIG BOI
stroke(205, 0, 205);
fill(128, 0, 128);
ellipse(purpleX, purpleY, 40, 40);
//BLACK HOLE
stroke(110, 0, 110);
fill(0, 0, 40);
ellipse(blackHoleX, blackHoleY, 30, 30);
if (sunHeld == true) {
sunDone = true;
sunPicked();
}
if (sunDone == true){
sunReleased();
}
if (redHeld == true) {
redDone = true;
redPlanetPicked();
}
if (redDone == true){
redReleased();
}
if (moonHeld == true) {
moonDone = true;
moonPicked();
}
if (moonDone == true) {
moonReleased();
}
if (purpleHeld == true) {
purpleDone = true;
purplePlanetPicked();
}
if (purpleDone == true) {
purpleReleased();
}
if (blackHoleHeld == true) {
blackHoleDone = true;
blackHolePicked();
}
if (blackHoleDone == true) {
blackHoleReleased();
}
}
void starPlacement(int starPositionX, int starPositionY) {
for (int i = 0; i < numStars; i++) {
stroke(255);
point(starPositionX, starPositionY);
}
}
// the user grabs something from the side menu
void mousePressed() {
if (mouseX <= 390 && mouseX >= 360 && mouseY >= 20 && mouseY <= 50) {
sunCheck = true;
sunHeld = true;
sunPicked();
println("Sun");
} else if (mouseX <= 383 && mouseX >= 368 && mouseY >= 70 && mouseY <= 85) {
redCheck = true;
redHeld =true;
redPlanetPicked();
println("Red");
} else if (mouseX <= 380 && mouseX >= 370 && mouseY >= 105 && mouseY <= 115) {
moonCheck = true;
moonHeld = true;
moonPicked();
println("Moon");
} else if (mouseX <= 396 && mouseX >= 356 && mouseY >= 135 && mouseY <= 175) {
purpleCheck = true;
purpleHeld = true;
purplePlanetPicked();
println("Big Boi");
} else if (mouseX <= 391 && mouseX >= 361 && mouseY >= 192 && mouseY <= 222) {
blackHoleCheck = true;
blackHoleHeld = true;
blackHolePicked();
println("Black Hole");
} else {
held = false;
println ("false");
}
}
void newValues() {
if (sunCheck == true){
newSunX = mouseXSun;
newSunY = mouseYSun;
}
else if (redCheck == true) {
newRedX = mouseXRed;
newRedY = mouseYRed;
}
else if (moonCheck == true) {
newMoonX = mouseXMoon;
newMoonY = mouseYMoon;
}
else if (purpleCheck == true) {
newPurpleX = mouseXMoon;
newPurpleY = mouseYMoon;
}
else if (blackHoleCheck == true) {
newBlackHoleX = mouseXBlackHole;
newBlackHoleY = mouseYBlackHole;
}
}
// the small red planet is chosen
void redPlanetPicked() {
ellipseMode(CENTER);
stroke(110, 0, 30);
fill(175, 59, 42);
ellipse(mouseX, mouseY, 15, 15);
}
// the sun is chosen
void sunPicked() {
ellipseMode(CENTER);
strokeWeight(2);
stroke(255, 250, 0);
fill(255, 180, 0);
ellipse(mouseX, mouseY, 30, 30);
}
// the moon is chosen
void moonPicked() {
ellipseMode(CENTER);
stroke(84, 95, 102);
fill(200);
ellipse(mouseX, mouseY, 10, 10);
}
// the large purple planet is chosen
void purplePlanetPicked() {
ellipseMode(CENTER);
stroke(205, 0, 205);
fill(128, 0, 128);
ellipse(mouseX, mouseY, 40, 40);
}
// the black hole is chosen
void blackHolePicked() {
ellipseMode(CENTER);
stroke(110, 0, 110);
fill(0, 0, 40);
ellipse(mouseX, mouseY, 30, 30);
}
void mouseReleased() {
if (sunCheck == true) {
sunHeld = false;
newValues();
}
if (sunDone == true) {
sunReleased();
}
if (redCheck == true) {
redHeld = false;
newValues();
}
if (redDone == true) {
redReleased();
}
if (moonCheck == true) {
moonHeld = false;
newValues();
}
if (moonDone == true) {
moonReleased();
}
if (purpleCheck == true) {
purpleHeld = false;
newValues();
}
if (purpleDone == true) {
purpleReleased();
}
if (blackHoleCheck == true) {
blackHoleHeld = false;
newValues();
}
if (blackHoleDone == true) {
blackHoleReleased();
}
}
void sunReleased() {
ellipseMode(CENTER);
strokeWeight(2);
stroke(255, 250, 0);
fill(255, 180, 0);
ellipse(mouseXSun, mouseYSun, 30, 30);
}
void redReleased() {
ellipseMode(CENTER);
stroke(110, 0, 30);
fill(175, 59, 42);
ellipse(mouseXRed, mouseYRed, 15, 15);
}
void moonReleased() {
ellipseMode(CENTER);
stroke(84, 95, 102);
fill(200);
ellipse(mouseXMoon, mouseYMoon, 10, 10);
}
void purpleReleased() {
ellipseMode(CENTER);
stroke(205, 0, 205);
fill(128, 0, 128);
ellipse(mouseXPurple, mouseYPurple, 40, 40);
}
void blackHoleReleased() {
ellipseMode(CENTER);
stroke(110, 0, 110);
fill(0, 0, 40);
ellipse(mouseXBlackHole, mouseYBlackHole, 30, 30);
}
void sunGravEffect() {
}
void redGravEffect() {
}
void moonGravEffect() {
}
void purpleGravEffect() {
}
void blackHoleGravEffect() {
}
// user may press escape to exit the program
void endProgram(boolean stop) {
if (keyCode == 27) {
stop = true;
}
}