/////////////////THE PRINCESS AND THE GENERAL//////////////////////////////
///////////////////////BY DEXTER TRUONG////////////////////////////////////
//START OF PROGRAM
void setup() {
//Setup size of window
size(400, 400);
}
void draw() {
frameRate(60);
//Mode of shapes
noStroke();
ellipseMode(CORNERS);
rectMode(CORNERS);
//Background colour
background(94, 164, 224);
//Draw the ground
fill(67, 151, 60);
rect(0, 280, 400, 400);
/////////////////////LEFT TREE///////////////////////
//Draw left tree trunk and branches
fill(127, 123, 92);
triangle(40, 300, 80, 300, 60, 100);
triangle(30, 300, 40, 300, 50, 260);
triangle(90, 300, 50, 300, 60, 180);
triangle(60, 160, 60, 145, 125, 120);
//Draw leaves of left tree, background
fill(190, 139, 189);
ellipse(20, 30, 60, 70);
ellipse(0, 80, 60, 140);
//Draw leaves of the left tree, middleground
fill(233, 172, 232);
ellipse(20, 40, 100, 130);
ellipse(110, 100, 150, 140 );
//Draw leaves of the left tree, foreground
fill(234, 186, 233);
ellipse(70, 30, 110, 70);
/////////////////////LEFT TREE///////////////////////
/////////////////////RIGHT TREE///////////////////////
//Draw right tree trunk and branches
fill(127, 123, 92);
triangle(360, 300, 320, 300, 340, 80);
triangle(380, 300, 355, 300, 355, 240);
triangle(310, 300, 330, 300, 330, 200);
triangle(350, 160, 330, 200, 380, 130);
//Draw leaves of right tree, background
fill(190, 139, 189);
ellipse(280, 20, 340, 80);
ellipse(360, 80, 380, 100);
//Draw leaves of right tree, middleground
fill(233, 172, 232);
ellipse(300, 20, 380, 100 );
ellipse(370, 120, 390, 140 );
//Draw leaves of right tree, foreground
fill(234, 186, 233);
ellipse(300, 80, 320, 100);
ellipse(340, 20, 380, 60 );
ellipse(380, 130, 400, 150);
/////////////////////RIGHT TREE///////////////////////
/////////////////////THE PRINCESS///////////////////////
//Prinecess's hair: back
fill(75, 58, 75);
rect(52, 160, 130, 300);
//Princess's hair: back bang
fill(88, 64, 88);
rect(147, 227, 120, 180);
//Princess's head, neck, and shoulders
fill(255, 229, 200);
ellipse(80, 160, 140, 220);
triangle(123, 225, 95, 216, 134, 208);
rect(100, 215, 112, 250);
quad(90, 240, 122, 240, 127, 250, 82, 250);
//Princess's arms
triangle(162, 267, 175, 290, 142, 280);
triangle(50, 267, 30, 290, 60, 283);
//Priness's legs
triangle(80, 340, 100, 340, 80, 380);
triangle(110, 340, 130, 340, 110, 380);
//Priness's Hair: bangs
fill(75, 58, 75);
ellipse( 52, 140, 150, 180);
rect(150, 180, 52, 160);
//Princess's hair: front bang
fill(88, 64, 88);
quad(77, 160, 90, 160, 77, 230, 60, 220 );
//Princess's eyes
fill(0, 0, 0);
ellipse(102, 183, 112, 197);
ellipse(130, 182, 137, 197);
//Princess's blush
fill(227, 150, 188);
ellipse(90, 197, 103, 202 );
ellipse(132, 197, 145, 202);
//Princess's dress: base
fill(230, 227, 229);
quad(82, 250, 127, 250, 150, 340, 60, 340);
//Princess's dress: sleeves
triangle(90, 240, 60, 290, 40, 270);
triangle(122, 240, 170, 270, 142, 290);
//Princess's dress: highlight
fill(198, 72, 72);
ellipse(75, 250, 115, 290);
ellipse(95, 250, 135, 290 );
triangle(105, 350, 75, 275, 135, 275);
triangle(60, 340, 60, 350, 50, 350);
triangle(150, 340, 150, 350, 160, 350);
//Priness's dress: front ornament
fill(245, 241, 139);
quad(100, 260, 110, 260, 115, 280, 95, 280);
quad(90, 260, 100, 260, 100, 265, 90, 270);
quad(110, 260, 120, 260, 120, 270, 110, 265);
triangle(95, 280, 100, 280, 95, 290);
triangle(100, 280, 110, 280, 105, 300);
triangle(115, 280, 110, 280, 115, 290);
//Princess's thigh highs
fill(113, 113, 113);
triangle(80, 350, 95, 350, 80, 380);
triangle(110, 350, 125, 350, 110, 380);
/////////////////////THE PRINCESS///////////////////////
/////////////////////THE GENERAL///////////////////////
//General's back hair
fill(81, 83, 78);
triangle(275, 220, 282, 175, 297, 175);
//General's head and neck
fill(255, 229, 200);
ellipse(280, 160, 340, 220);
triangle(295, 225, 320, 219, 281, 200);
rect(310, 215, 320, 250);
//General's arms
fill(255, 229, 200);
triangle(265, 285, 275, 297, 245, 315);
triangle(370, 285, 360, 297, 390, 315);
//General's eyes
fill(0, 0, 0);
ellipse(310, 183, 320, 197);
ellipse(285, 182, 293, 197 );
//General's blush
fill(227, 150, 188);
ellipse(275, 197, 288, 202);
ellipse(317, 197, 330, 202);
//General's hat: visor
fill(109, 109, 109);
quad(290, 160, 355, 160, 340, 170, 275, 170);
triangle(340, 170, 370, 150, 330, 160);
//General's hat: mid piece
fill(188, 157, 109);
rect(290, 160, 335, 150);
triangle(335, 150, 335, 160, 370, 150);
//General's hat: top piece
fill(80, 107, 49);
quad(280, 130, 340, 130, 340, 150, 290, 150);
triangle(340, 130, 340, 150, 370, 150);
triangle(280, 130, 340, 130, 320, 120);
//General's hair: bangs
fill(81, 83, 78);
triangle(270, 190, 280, 170, 310, 170);
triangle(310, 170, 325, 170, 300, 200);
triangle(325, 170, 340, 170, 325, 190);
//General's hair: side
fill(81, 83, 78);
quad(335, 170, 360, 157, 370, 190, 340, 200);
triangle(340, 199, 330, 230, 355, 190);
triangle(345, 190, 350, 220, 360, 190);
triangle(355, 190, 360, 215, 370, 190);
//General's uniform: sleeves
fill(83, 110, 51);
quad(260, 290, 293, 240, 293, 280, 265, 310);
quad(340, 280, 340, 240, 375, 290, 370, 310);
//General's uniform: jacket front
fill(80, 107, 49);
quad(293, 240, 340, 240, 350, 320, 280, 320);
//General's uniform: undershirt
fill(186, 175, 139);
triangle(307, 245, 322, 245, 315, 290);
//General's uniform: detail
fill(101, 135, 63);
triangle(293, 240, 310, 255, 310, 245);
triangle(340, 240, 320, 255, 320, 245);
triangle(310, 255, 295, 255, 315, 290);
triangle(320, 255, 335, 255, 315, 290);
//General's uniform: belt
fill(0, 0, 0);
quad(285, 293, 347, 293, 347, 298, 285, 298);
//General's uniform: belt buckle
fill(150, 150, 150);
rect(307, 290, 323, 300);
//General's uniform: pants
fill(66, 88, 40);
triangle(280, 320, 310, 320, 310, 380);
triangle(320, 320, 350, 320, 350, 380);
//General's uniform: Boots
fill(0, 0, 0);
rect(290, 340, 310, 380);
rect(330, 340, 350, 380);
rect(310, 380, 280, 370);
rect(350, 380, 320, 370);
/////////////////////THE GENERAL///////////////////////
/////////////////////CHERRY BLOSSOMS///////////////////
//Cherry blossom petals, center the ellipses' for cherry blossom mouse movement
ellipseMode(CENTER);
fill(255, 118, 253, 95);
ellipse(-mouseX/60+300, -mouseY/60+300, 15, 5);
ellipse(-mouseX/60+90, -mouseY/60+90, 15, 5);
ellipse(-mouseX/60+60, -mouseY/60+150, 15, 5);
ellipse(-mouseX/60+80, -mouseY/10+220, 15, 5);
ellipse(-mouseX/60+97, -mouseY/60+150, 15, 5);
ellipse(-mouseX/60+44, -mouseY/260+355, 15, 5);
ellipse(-mouseX/20+321, -mouseY/60+200, 15, 5);
ellipse(-mouseX/30+360, -mouseY/60+50, 15, 5);
ellipse(-mouseX/60+115, -mouseY/10+110, 15, 5);
ellipse(-mouseX/60+72, -mouseY/60+150, 15, 5);
ellipse(-mouseX/80+48, -mouseY/10+197, 15, 5);
ellipse(-mouseX/60+270, -mouseY/60+150, 15, 5);
ellipse(-mouseX/60+300, -mouseY/55+150, 15, 5);
ellipse(-mouseX/40+377, -mouseY/40+350, 15, 5);
ellipse(-mouseX/60+275, -mouseY/60+380, 15, 5);
ellipse(-mouseX/60+360, -mouseY/50+350, 15, 5);
ellipse(-mouseX/20+296, -mouseY/10+175, 15, 5);
ellipse(-mouseX/50+342, -mouseY/60+315, 15, 5);
ellipse(-mouseX/60+255, -mouseY/30+255, 15, 5);
ellipse(-mouseX/100+281, -mouseY/60+157, 15, 5);
ellipse(-mouseX/60+122, -mouseY/60+350, 15, 5);
ellipse(-mouseX/60+160, -mouseY/22+347, 15, 5);
ellipse(-mouseX/20+150, -mouseY/60+150, 15, 5);
ellipse(-mouseX/30+177, -mouseY/60+350, 15, 5);
ellipse(-mouseX/15+60, -mouseY/90+250, 15, 5);
ellipse(-mouseX/44+247, -mouseY/20+222, 15, 5);
ellipse(-mouseX/40+160, -mouseY/30+280, 15, 5);
ellipse(-mouseX/10+60, -mouseY/10+30, 15, 5);
ellipse(-mouseX/40+150, -mouseY/30+320, 15, 5);
ellipse(-mouseX/60+166, -mouseY/20+212, 15, 5);
ellipse(-mouseX/30+162, -mouseY/10+275, 15, 5);
ellipse(-mouseX/60+190, -mouseY/10+244, 15, 5);
ellipse(-mouseX/10+160, -mouseY/30+15, 15, 5);
ellipse(-mouseX/20+160, -mouseY/60+30, 15, 5);
ellipse(-mouseX/30+260, -mouseY/30+55, 15, 5);
ellipse(-mouseX/10+275, -mouseY/15+44, 15, 5);
ellipse(-mouseX/30+250, -mouseY/30+750, 15, 5);
ellipse(-mouseX/20+160, -mouseY/40+67, 15, 5);
ellipse(-mouseX/25+152, -mouseY/80+137, 15, 5);
ellipse(-mouseX/12+147, -mouseY/60+150, 15, 5);
ellipse(-mouseX/20+153, -mouseY/40+170, 15, 5);
ellipse(-mouseX/70+166, -mouseY/66+66, 15, 5);
ellipse(-mouseX/13+185, -mouseY/10+85, 15, 5);
ellipse(-mouseX/20+199, -mouseY/10+205, 15, 5);
ellipse(-mouseX/20+310, -mouseY/10+300, 15, 5);
ellipse(-mouseX/10+320, -mouseY/60+320, 15, 5);
ellipse(-mouseX/40+230, -mouseY/20+375, 15, 5);
ellipse(-mouseX/10+225, -mouseY/50+277, 15, 5);
ellipse(-mouseX/20+234, -mouseY/20+310, 15, 5);
ellipse(-mouseX/30+121, -mouseY/20+320, 15, 5);
ellipse(-mouseX/10+199, -mouseY/30+315, 15, 5);
ellipse(-mouseX/13+60, -mouseY/10+2700, 15, 5);
ellipse(-mouseX/20+337, -mouseY/12+247, 15, 5);
ellipse(-mouseX/20+200, -mouseY/10+200, 15, 5);
ellipse(-mouseX/10+260, -mouseY/60+250, 15, 5);
ellipse(-mouseX/30+215, -mouseY/30+230, 15, 5);
ellipse(-mouseX/10+210, -mouseY/20+10, 15, 5);
ellipse(-mouseX/30+200, -mouseY/30+150, 15, 5);
ellipse(-mouseX/25+215, -mouseY/10+75, 15, 5);
ellipse(-mouseX/33+222, -mouseY/20+157, 15, 5);
ellipse(-mouseX/17+205, -mouseY/20+77, 15, 5);
ellipse(-mouseX/44+212, -mouseY/30+140, 15, 5);
ellipse(-mouseX/15+230, -mouseY/20+140, 15, 5);
ellipse(-mouseX/10+220, -mouseY/30+130, 15, 5);
ellipse(-mouseX/20+225, -mouseY/40+125, 15, 5);
/////////////////////CHERRY BLOSSOMS///////////////////
}
/////////////////////THE HEART/////////////////////////
void mousePressed() {
frameRate(3);
//Reset ellipse mode back to corners
ellipseMode(CORNERS);
fill(255, 74, 163);
ellipse(175, 120, 215, 160);
ellipse(210, 160, 250, 120);
triangle(178, 150, 247, 150, 215, 200);
}
/////////////////////THE HEART/////////////////////////
//END OF PROGRAM