/** Project I Jenna Klima Sep 22nd, 2014 Globals float herocastiaX, herocastiaY; float monstermaurusX, monstermaurusY; castiaX = castiaX + ( maurusX - castiaX ) / 50; castiaY = castiaY + ( maurusY - castiaY ) / 50; **/ int score = 0; float sunX = 100, sunY = 100; float horizon; float castiaX, castiaY; float maurusX, maurusY; float goldX = 200, goldY = 200; void setup ( ) { //setup size ( 1000, 600 ); horizon = height / 4; sunY = horizon / 2; castiaX = width / 2; castiaY = height / 2; maurusX = 30; maurusY = random ( horizon, height - 60 ); resetI ( ); } void resetI ( ) { castiaX = 30; castiaY = random ( horizon, height - 60 ); maurusX = width - 30; maurusY = random ( horizon, height - 60 ); goldX = random ( width / 4, width * 3 / 4 ); goldY = random ( horizon + 20, height - 20 ); } void draw ( ) { //next frame scene ( ); gold ( ); monster ( ); hero ( ); scoring ( ); } void scene ( ) { //sky, sun, etc. background ( 200, 200, 255 ); noStroke ( ); fill ( 255, 255, 0 ); ellipse ( sunX, sunY, 50, 50 ); fill ( 200, 255, 200 ); rectMode ( CORNER ); rect ( 0, horizon, width, height * 3 / 4 ); //sun moves across sky if ( sunX > width ) { sunX = 0; sunY = random ( 30, horizon - 30 ); score = score + 10; } sunX = sunX + 1; //sun rays strokeWeight ( 3 ); stroke ( 255, 255, 100 ); line ( sunX + 40, sunY + 40, sunX + 18, sunY + 18 ); line ( sunX - 40, sunY - 40, sunX - 18, sunY - 18 ); line ( sunX + 40, sunY - 40, sunX + 18, sunY - 18 ); line ( sunX - 40, sunY + 40, sunX - 18, sunY + 18 ); line ( sunX, sunY + 25, sunX, sunY + 55 ); line ( sunX, sunY - 25, sunX, sunY - 55 ); line ( sunX + 25, sunY, sunX + 55, sunY ); line ( sunX - 25, sunY, sunX - 55, sunY ); fill ( 0 ); //-- text ( sunX, sunX, sunY + 40 ); text ( "Project I Requirements", width - 400, 50 ); text ( "GOLD=" + score, width - 200, 50 ); text ( "Jenna Klima", width - 975, 575 ); } void gold ( ) { //gold strokeWeight ( 1 ); stroke ( 0 ); fill ( 255, 200, 0 ); ellipse ( goldX, goldY, 30, 30 ); } void hero ( ) { //move & draw Castia if ( mousePressed ) { castiaX = castiaX + ( mouseX - castiaX ) / 30; castiaY = castiaY + ( mouseY - castiaY ) / 30; } else { castiaX = castiaX + ( goldX - castiaX ) / 30; castiaY = castiaY + ( goldY - castiaY ) / 30; } if ( castiaY < horizon ) { castiaY = horizon; } //draw fill ( 0, 150, 0 ); rectMode ( CENTER ); rect ( castiaX, castiaY, 50, 80 ); fill ( 127, 255, 0 ); ellipse ( castiaX, castiaY - 40, 40, 50 ); //arms rectMode ( CORNERS ); fill ( 0, 50, 0 ); rect ( castiaX-45, castiaY - 40, castiaX - 25, castiaY + 30 ); fill ( 0, 50, 0 ); rect ( castiaX + 45, castiaY - 40, castiaX + 25, castiaY + 30 ); //butt fill ( 0, 50, 0 ); rect ( castiaX-25, castiaY+35, castiaX+25, castiaY+50 ); //legs fill ( 0, 50, 0 ); rect ( castiaX - 15, castiaY + 35, castiaX - 30, castiaY + 110 ); fill ( 0, 50, 0 ); rect ( castiaX + 15, castiaY + 35, castiaX + 30, castiaY + 110 ); //vest fill ( 0, 255, 0 ); triangle ( castiaX - 25, castiaY - 15, castiaX + 25, castiaY - 15, castiaX, castiaY + 10 ); fill ( 0 ); if ( dist ( goldX, goldY, castiaX, castiaY ) < 75 ) { score = 200; goldX = random ( 50, width - 50 ); goldY = random ( horizon, height - 50 ); } } void monster ( ) { ////move and draw Maurus //chase Castia maurusX = maurusX + ( castiaX - maurusX ) / 150; maurusY = maurusY + ( castiaY - maurusY ) / 150; if ( dist ( castiaX, castiaY, maurusX, maurusY ) < 100 ) { eat ( ); } //draw Maurus fill ( 150, 0, 0 ); rectMode ( CENTER ); rect ( maurusX, maurusY, 70, 90 ); fill ( 255, 127, 0 ); ellipse ( maurusX, maurusY - 40, 50, 60 ); //arms rectMode ( CORNERS ); fill ( 50, 0, 0 ); rect ( maurusX - 60, maurusY - 45, maurusX - 35, maurusY + 30 ); fill ( 50, 0, 0 ); rect ( maurusX + 60, maurusY - 45, maurusX + 35, maurusY + 30 ); //butt fill ( 50, 0, 0 ); rect ( maurusX - 35, maurusY + 35, maurusX + 35, maurusY + 50 ); //legs fill ( 50, 0, 0 ); rect ( maurusX - 15, maurusY + 35, maurusX - 30, maurusY + 110 ); fill ( 50, 0, 0 ); rect ( maurusX + 15, maurusY + 35, maurusX + 30, maurusY + 110 ); //vest fill ( 255, 0, 0 ); triangle ( maurusX - 35, maurusY - 10, maurusX + 35, maurusY - 10, maurusX, maurusY + 20 ); fill ( 0 ); } void scoring ( ) { } void eat ( ) { //Monster kills hero. Deduct 200 from score score = score - 200; background ( 255, 0, 0 ); castiaX = 40; castiaY = random ( 30, height - 30 ); maurusX = width; maurusY = random ( 30, height - 30 ); } void keyPressed ( ) { //keys if ( key == 'r' ) resetI ( ); if ( key == 'q' ) exit ( ); } void mousePressed ( ) { castiaX = castiaX + ( mouseX - castiaX ) / 30; castiaY = castiaY + ( mouseY - castiaY ) / 30; } void mouseReleased(){ castiaX=castiaX+(goldX-castiaX)/30; castiaY=castiaY+(goldY-castiaY)/30; score=score+-50; }