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; } }