Modify a text file: $/project2-4.java
$/project2-4.java
//// Project 2.4 -- Change hero to follow MOUSE. // Random reset for hero & monster. // Also add cute dog & silly puppy. String title="G O L D R U S H (2.4)"; String subtitle="(click to move gold)"; String author= "Bruce Alan Martin"; //// NOTE: String class name is spelled with a CAPITAL "S". float heroX, heroY; // Position of hero, etc. float heroheadX, heroheadY; float goldX, goldY; float birdX=50, birdY=50; float monsterX=200,monsterY=100; float dogX,dogY, puppyX,puppyY; float horizon; int score=0; void setup() { //// Initialization //// size( 640, 480 ); horizon= height/4; heroX= width/2; // Start hero in center of screen heroY= height/2; goldX= width-50; // Gold at lower-right corner. goldY= height-50; } void draw() { // Next frame. scene(); action(); } void action() { // Move & draw all creatures, etc. gold(); bird(); monster(); hero(); dog(); puppy(); } void mousePressed() { //// Event handler for mouse click. goldX= mouseX; goldY= mouseY; background( 255, 255, 0 ); // Flash! score= score + 1; // Random reset for monster 7 hero. monsterX= 20; monsterY= random( horizon, height-50); heroX= width-random(200); heroY= random( horizon, height-50); } void gold() { //// Draw gold. fill( 255, 150, random(150) ); stroke( 200+random(50), random(150), random(100) ); strokeWeight( random(3) ); ellipse( goldX, goldY, 20, 20 ); // Reset. stroke(0); strokeWeight( 1 ); fill( 255 ); } void hero() { // move & draw hero // CHANGED: Move toward MOUSE. //-- heroX= heroX + (goldX-heroX)/60; //-- heroY= heroY + (goldY-heroY)/60; heroX= heroX + (mouseX-heroX)/60; heroY= heroY + (mouseY-heroY)/60; // Draw hero fill( 255, 255, 0 ); rectMode( CENTER ); rect( heroX, heroY, 50, 80 ); // Head. heroheadX= heroX; heroheadY= heroY - 80/2 -36/2; fill( 255, 200, 150 ); ellipse( heroheadX, heroheadY, 30, 36 ); // + eyes eyes(); } void eyes() { // Draw eyes // fill( 255, 255, 255 ); ellipse( heroheadX-10, heroheadY, 10, 10 ); // Left ellipse( heroheadX+10, heroheadY, 10, 10 ); // Right fill( 0, 0, 255 ); ellipse( heroheadX-10, heroheadY, 5, 5 ); // Left pupil ellipse( heroheadX+10, heroheadY, 5, 5 ); // Right } void bird() { // Move & draw bird. birdX= birdX + 3; birdX= birdX % width; birdY= birdY + 2 - random(1); birdY= birdY % horizon; fill(0, 0, 255); triangle( birdX, birdY, birdX-40, birdY-20, birdX-40, birdY+20 ); } void monster() { //// Draw & move ugly monster monsterX= monsterX + (heroX-monsterX)/120; monsterY= monsterY + (heroY-monsterY)/150; fill( 100, 50, 100 ); rectMode(CENTER); rect( monsterX, monsterY, 80, 120 ); rect( monsterX, monsterY-60, 120, 30 ); // shoulders rect( monsterX-30, monsterY+80, 20, 60 ); // legs rect( monsterX+30, monsterY+80, 20, 60 ); fill( 50, 100, 50 ); rect( monsterX, monsterY-80, 50, 50 ); // head } void dog() { //// Move & draw cute dog -- chases hero. dogX= dogX + (heroX-dogX)/40; dogY= dogY + (heroY-dogY)/40; fill( 80, 60, 0 ); rect(dogX, dogY, 40, 20); rect(dogX+15, dogY-10, 20, 15); //head rect(dogX-25, dogY-10, 12, 5); //tail } void puppy() { //// Silly puppy follows dog puppyX= puppyX + (dogX-puppyX)/30 -2 +random(4); // (faster than dog) puppyY= puppyY + (dogY-puppyY)/30 -2 +random(4); fill( 170, 150, 50 ); rect(puppyX, puppyY, 20, 10); rect(puppyX+15, puppyY-10, 10, 8); //head rect(puppyX-8, puppyY-8+random(2)-1, 8, 4); //tail } //////// SCENE //////// void scene() { //// sky, etc. background( 150, 200, 255 ); // sky fill( 100, 255, 100 ); // grass rectMode( CORNERS ); rect( 0, horizon, width, height ); // Messages. notes(); // barn. fill( 255, 50, 50 ); float barnX=width*2/3; float barnY= horizon-25; rectMode(CENTER); rect( barnX, barnY, 40, 50 ); // barn triangle( barnX-20,barnY-25, barnX+20,barnY-25, barnX,barnY-45 ); //++++ add sun, clouds, etc. } void notes() { //// Messages on screen fill(0); text( title, 200, 30 ); text( subtitle, 200, 50 ); text( score, width-100, 60 ); text( author, 20, height-20 ); }