Your browser does not support the canvas tag.

previous        Show / Hide Source        Download        next
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;
  }
}