// Rick Sanchez's 1st Portal Jump // Click & hold your mouse button and quickly make circular motions to create Rick's portal // Press any key to see Rick's legendary catch phrase void setup() { // set the size of the window size(400, 400); // take out black outlines noStroke(); // set 60 fps frameRate(60); // set anti-aliasing smooth(); } void draw() { // set drawing modes rectMode(CORNERS); ellipseMode(CENTER); // as the cursor trails down vertically, sky gets darker background(240-mouseY/3, 142-mouseY/3, 76-mouseY/3); // draw an orange background gradient getting lighter as you go down fill(240-mouseY/3, 151-mouseY/3, 92-mouseY/3); rect(0, 80, 400, 160); fill(240-mouseY/3, 161-mouseY/3, 108-mouseY/3); rect(0, 160, 400, 240); fill(240-mouseY/3, 170-mouseY/3, 123-mouseY/3); rect(0, 240, 400, 320); // draw sun fill(mouseX/2, 50, mouseY/2); ellipse(200+mouseX/100, 320, 450, 400); // draw clouds moving left fill(255-mouseY/3, 255-mouseY/3, 255-mouseY/3, 100); rect(320-frameCount/5, 75, 390-frameCount/5, 100, 7); rect(220-frameCount/5, 55, 300-frameCount/5, 100, 7); rect(20-frameCount/5, 60, 80-frameCount/5, 90, 7); rect(140-frameCount/5, 55, 190-frameCount/5, 75, 7); // draw same clouds moving left after the first set rect(700-frameCount/5, 75, 770-frameCount/5, 100, 7); rect(600-frameCount/5, 55, 680-frameCount/5, 100, 7); rect(400-frameCount/5, 60, 460-frameCount/5, 90, 7); rect(520-frameCount/5, 55, 570-frameCount/5, 75, 7); // draw mountain (back) fill(mouseX/2, 129, mouseY/2); triangle(85+mouseX/30, 320+mouseY/30, 200+mouseX/30, 60+mouseY/30, 320+mouseX/30, 320+mouseY/30); fill(mouseX/2, 102, mouseY/2); triangle(85+mouseX/30, 320+mouseY/30, 200+mouseX/30, 60+mouseY/30, 255+mouseX/30, 320+mouseY/30); // draw ground fill(255, 110, 110-mouseY/7); rect(-10+mouseX/100, 320+mouseY/100, 400, 400); // draw mountains (front) fill(255, 110, 110-mouseY/7); triangle(-15+mouseX/100, 320+mouseY/100, 30+mouseX/100, 220+mouseY/100, 60+mouseX/100, 320+mouseY/100); triangle(30+mouseX/100, 320+mouseY/100, 90+mouseX/100, 260+mouseY/100, 120+mouseX/100, 320+mouseY/100); triangle(90+mouseX/100, 300+mouseY/100, 110+mouseX/100, 270+mouseY/100, 120+mouseX/100, 290+mouseY/100); triangle(90+mouseX/100, 320+mouseY/100, 140+mouseX/100, 240+mouseY/100, 180+mouseX/100, 320+mouseY/100); triangle(160+mouseX/100, 320+mouseY/100, 200+mouseX/100, 260+mouseY/100, 240+mouseX/100, 320+mouseY/100); triangle(200+mouseX/100, 320+mouseY/100, 220+mouseX/100, 290+mouseY/100, 260+mouseX/100, 320+mouseY/100); triangle(240+mouseX/100, 320+mouseY/100, 260+mouseX/100, 280+mouseY/100, 300+mouseX/100, 320+mouseY/100); triangle(280+mouseX/100, 320+mouseY/100, 310+mouseX/100, 240+mouseY/100, 340+mouseX/100, 320+mouseY/100); triangle(310+mouseX/100, 320+mouseY/100, 370+mouseX/100, 220+mouseY/100, 410+mouseX/100, 320+mouseY/100); // draw rick's shadow fill(210, 88, 88-mouseY/7); ellipse(120+mouseX/100, 320+mouseY/100, 150, 9); // draw rick's hair base fill(188, 228, 247-mouseY/5); rect(65+mouseX/100, 125+mouseY/100, 100+mouseX/100, 165+mouseY/100); // draw rick's hair spikes rect(75+mouseX/100, 115+mouseY/100, 85+mouseX/100, 125+mouseY/100); rect(75+mouseX/100, 110+mouseY/100, 80+mouseX/100, 115+mouseY/100); rect(90+mouseX/100, 120+mouseY/100, 100+mouseX/100, 125+mouseY/100); rect(95+mouseX/100, 115+mouseY/100, 100+mouseX/100, 120+mouseY/100); rect(100+mouseX/100, 130+mouseY/100, 105+mouseX/100, 135+mouseY/100); rect(100+mouseX/100, 140+mouseY/100, 105+mouseX/100, 145+mouseY/100); rect(60+mouseX/100, 125+mouseY/100, 65+mouseX/100, 130+mouseY/100); rect(60+mouseX/100, 135+mouseY/100, 65+mouseX/100, 145+mouseY/100); rect(55+mouseX/100, 140+mouseY/100, 60+mouseX/100, 145+mouseY/100); rect(60+mouseX/100, 150+mouseY/100, 65+mouseX/100, 155+mouseY/100); rect(65+mouseX/100, 160+mouseY/100, 70+mouseX/100, 165+mouseY/100); // draw rick's head base fill(255, 229, 204-mouseY/5); rect(75+mouseX/100, 130+mouseY/100, 95+mouseX/100, 170+mouseY/100); rect(70+mouseX/100, 135+mouseY/100, 75+mouseX/100, 165+mouseY/100); // draw rick's ears rect(65+mouseX/100, 155+mouseY/100, 70+mouseX/100, 160+mouseY/100); rect(95+mouseX/100, 155+mouseY/100, 100+mouseX/100, 160+mouseY/100); // draw rick's eyes fill(255, 255, 255-mouseY/5); rect(75+mouseX/100, 140+mouseY/100, 85+mouseX/100, 155+mouseY/100); rect(85+mouseX/100, 140+mouseY/100, 95+mouseX/100, 155+mouseY/100); // draw rick's nose fill(208, 189, 171-mouseY/5); rect(85+mouseX/100, 145+mouseY/100, 90+mouseX/100, 157+mouseY/100); // draw rick's mouth fill(0, 0, 0); rect(80+mouseX/100, 160+mouseY/100, 90+mouseX/100, 163+mouseY/100); rect(77+mouseX/100, 157+mouseY/100, 80+mouseX/100, 160+mouseY/100); // draw rick's pupils fill(0, 0, 0); rect(80+mouseX/100, 140+mouseY/100, 85+mouseX/100, 150+mouseY/100); rect(92+mouseX/100, 140+mouseY/100, 95+mouseX/100, 150+mouseY/100); // draw rick's eyebrows fill(188, 228, 247-mouseY/5); rect(75+mouseX/100, 135+mouseY/100, 95+mouseX/100, 140+mouseY/100); // draw rick's neck fill(208, 189, 171-mouseY/5); rect(80+mouseX/100, 170+mouseY/100, 90+mouseX/100, 175+mouseY/100); // draw rick's lab coat fill(255, 255, 255-mouseY/5); rect(60+mouseX/100, 180+mouseY/100, 105+mouseX/100, 275+mouseY/100); rect(67+mouseX/100, 175+mouseY/100, 80+mouseX/100, 180+mouseY/100); rect(65+mouseX/100, 280+mouseY/100, 70+mouseX/100, 260+mouseY/100); rect(95+mouseX/100, 275+mouseY/100, 105+mouseX/100, 280+mouseY/100); rect(90+mouseX/100, 275+mouseY/100, 100+mouseX/100, 280+mouseY/100); // draw rick's shirt fill(128, 228, 247-mouseY/5); rect(80+mouseX/100, 175+mouseY/100, 95+mouseX/100, 245+mouseY/100); // draw rick's arms fill(255, 255, 255-mouseY/5); rect(105+mouseX/100, 180+mouseY/100, 155+mouseX/100, 190+mouseY/100); rect(105+mouseX/100, 190+mouseY/100, 110+mouseX/100, 195+mouseY/100); rect(55+mouseX/100, 185+mouseY/100, 65+mouseX/100, 248+mouseY/100); // draw rick's hands fill(255, 229, 204-mouseY/5); rect(55+mouseX/100, 248+mouseY/100, 65+mouseX/100, 260+mouseY/100); rect(155+mouseX/100, 180+mouseY/100, 170+mouseX/100, 185+mouseY/100); rect(155+mouseX/100, 185+mouseY/100, 165+mouseX/100, 190+mouseY/100); // draw rick's belt fill(0, 0, 0); rect(75+mouseX/100, 230+mouseY/100, 95+mouseX/100, 235+mouseY/100); fill(255, 255, 0-mouseY/5); rect(85+mouseX/100, 230+mouseY/100, 90+mouseX/100, 235+mouseY/100); // draw rick's pants fill(148, 114, 63-mouseY/5); rect(70+mouseX/100, 260+mouseY/100, 80+mouseX/100, 305+mouseY/100); rect(75+mouseX/100, 235+mouseY/100, 80+mouseX/100, 260+mouseY/100); rect(75+mouseX/100, 235+mouseY/100, 95+mouseX/100, 245+mouseY/100); rect(90+mouseX/100, 260+mouseY/100, 100+mouseX/100, 305+mouseY/100); rect(90+mouseX/100, 235+mouseY/100, 95+mouseX/100, 260+mouseY/100); // draw rick's shoes fill(255, 255, 255-mouseY/5); rect(70+mouseX/100, 305+mouseY/100, 80+mouseX/100, 310+mouseY/100); rect(90+mouseX/100, 305+mouseY/100, 100+mouseX/100, 310+mouseY/100); fill(73, 73, 73-mouseY/5); rect(65+mouseX/100, 310+mouseY/100, 80+mouseX/100, 315+mouseY/100); rect(90+mouseX/100, 310+mouseY/100, 105+mouseX/100, 315+mouseY/100); fill(51, 51, 51-mouseY/5); rect(60+mouseX/100, 315+mouseY/100, 80+mouseX/100, 320+mouseY/100); rect(90+mouseX/100, 315+mouseY/100, 110+mouseX/100, 320+mouseY/100); // draw rick's portal gun fill(200, 200, 200-mouseY/5); rect(150+mouseX/100, 170+mouseY/100, 190+mouseX/100, 180+mouseY/100); rect(145+mouseX/100, 190+mouseY/100, 160+mouseX/100, 195+mouseY/100); fill(128, 255, 0-mouseY/5); rect(160+mouseX/100, 160+mouseY/100, 165+mouseX/100, 170+mouseY/100); } void mouseDragged() { // draw rick's portal fill(128, 255, 0); ellipse(320+mouseX/100, 180+mouseY/100, 40+mouseX/100, 200); fill(255, 255, 255); ellipse(320+mouseX/100, 180+mouseY/100, 30+mouseX/100, 160); fill(102, 204, 0); ellipse(320+mouseX/100, 180+mouseY/100, 25+mouseX/100, 150); fill(76, 153, 0); ellipse(320+mouseX/100, 180+mouseY/100, 10+mouseX/100, 100); // draw shadow of rick's portal fill(210, 88, 88-mouseY/7); ellipse(320+mouseX/100, 320+mouseY/100, 40+mouseX/100, 8); // draw portal transmission beam stroke(128, 255, 0); strokeWeight(3); line(190+mouseX/100, 175+mouseY/100, 319+mouseX/100, 174+mouseY/100); noStroke(); } // say catch phrase when a key is pressed void keyPressed() { println("WUBALUBADUBDUB!!!"); }