////Valerie Courgis - CST112 - Test2.java ////Control speed and position of player ////Val is a Frog /////Declaration float left=100, top=100, right=550, bottom=400; float center= (left+right) / 2; float ballX=left+5, ballY=top+5, ballDX=3, ballDY=5; float ballR, ballG, ballB; float valX=center+50, valY=200, valDX, valDY; float birdX=650, birdY=100, birdDX=3, birdDY=2; float dogX=150, dogY=50, dogDX=3, dogDY=2; String title="Val the Frog plays tennis."; String author="Valerie Courgis, CST112, Test 2"; String t="Val"; String news=""; String last=""; int counter=0; int score=0; int x = 50; int y = 25; int z = 25; void setup() { ////initialization size(800, 500); } void draw() { ////Next Frame frameRate(60); scene(); valMove(); valDraw(valX, valY); ball(); dogMove(); dogDraw(); bird(); action(); } void scene() { background(100, 155, 100); ////draw field stroke(85, 0, 0); strokeWeight(5); fill(0, 155, 0); rectMode(CENTER); rect(left+210, top+150, right-60, bottom-100); // Messages. fill(0); text( title, width/4, 20 ); text( author, 20, height-30 ); text( "SCORE: "+score, width-750, 20 ); text( "PRESS P or p to PAUSE SCREEN: ", width/35, height/1.15 ); } void reset() { ballR= random(0, 255); ballG= random(0, 255); ballB= random(0, 255); counter=0; // Zero out the frame count. } void valMove() { /// move val - but not pass the center line of field valDX= (mouseX-valX) / 20; valX = valX + valDX; valDY= (mouseY-valY) / 20; valY = valY + valDY; if ( valXright-20 ) valX=right-20; if ( valYbottom-70 ) valY=bottom-70; } void valDraw(float x, float y) { //// draw val's head and body at x and y stroke(2); strokeWeight(2); fill(255, 155, 0); rectMode(CENTER); ///set rect mode to center rect(x, y, 40, 50); ////shape of body ellipse(x, y-25, 35, 25); ////shape of head ////declare eye eye(x-10, y-35); eye(x+10, y-35); ///draw a paddle paddle(x-30, y+10); ///declare paddle drawtext(x, y+10); } void drawtext(float x, float y) { ////name on char object rectMode(CENTER); ///set rect mode to center fill(0); text(t, x, y, 20, 20); ////text name on char object } void eye(float x, float y) { stroke(1); ///draw one eye fill(255, 0, 0); rectMode(CENTER); ///set rect mode to center ellipse(x, y, 15, 15); ///draw shape of eye fill(0); ellipse(x, y, 4, 4); ///draw pupil of eye smooth(); leg(x, y+80); ///declare leg } void leg(float x, float y) { stroke(1); ////draw one leg fill(0, 0, 250); /// color - blue rect(x, y, 10, 50); /// draw leg of val middle(); } void middle() { ////center of field noStroke(); fill(255, 255, 15); /// color - middle of field rectMode(CORNERS); /// set rect mode to center rect(left+215, top, 122+right-350, bottom); ///drawing center of field } void ball() { /// check for bounce then move, draw ball noStroke(); //no outline on ball object ellipseMode(CENTER); if (ballXright-10) ballDX = ballDX*(random(-1,-6)); // if ball hits paddle, reverse direction if (ballYbottom-10) ballDY = ballDY*-1; // if ball hits paddle or edge boundaries, reverse direction; ballX += ballDX; ballY += ballDY; fill( ballR, ballG, ballB ); ///Red Green Blue colors ellipse(ballX, ballY, y, y ); ////draw ball textSize(13); text( "Click inside box for a new ball. ", width-300, 20 ); } void paddle( float x, float y) { //// //draw the paddle and change direction to ball location. stroke(0); strokeWeight(3); fill(155, 0, 155); // Color ellipseMode(CENTER); if (ballX > x+80) { ////right side of paddle fill(225, 225, 255); // Color line(x+20, y-10, x+80, y+15);////paddle stick ellipse(x+80, y+15, 30, 55); // shape - circle } if (ballX < x-40) { fill(225, 225, 255); // Color line(x+20, y-10, x-40, y+15);////paddle stick ellipse(x-40, y+15, 30, 55); // shape - circle } if (ballX >= x - 40 && ballX <= x + 80 ) { fill(225, 225, 255); // Color ellipse(x+20, y+20, 30, 55); // shape - circle } } void dogMove() { ////move dog dogX= dogX + dogDX; dogY= dogY + dogDY; if (dogXright-40) dogDX= -dogDX; if (dogYbottom-50) dogDY= -dogDY; } void dogDraw() { ////Draw and reverse dog fill(80, 0, 0); rectMode(CENTER); float dogFront = dogX + 85; float dogRear = dogX ; float dogBody = dogX + 40; float dogEye = dogX + 85; if ( dogDX > 0 ) { rect(dogBody, dogY+20, 85, 25); ////dog's body rect(dogFront, dogY, 45, 30);////dog's head rect(dogRear, dogY, 25, 25);////dog's tail fill(255); ellipse(dogEye, dogY, 10, 7); ////dog's eye /// dogleg(x+100, y-100); } else if ( dogDX < 0 ) { rect(dogBody, dogY+20, 85, 25); ////dog's body rect(dogRear, dogY, 45, 30);////dog's head rect(dogFront, dogY, 25, 25);////dog's tail fill(255); ellipse(dogEye -85, dogY, 10, 7); ////dog's eye /// dogleg(x-100, y+100); } dogleg(x+100, y-100); } void dogleg(float x, float y) { ////draw one leg fill(80, 0, 0); /////color brown noStroke(); float dogG = dogX ; float dogL = dogX + 80; float dogR = dogX - 10; if (dogDX > 0) { rect(dogG, dogY+40, 7, 20); /// draw left back leg of dog rect(dogL, dogY+40, 7, 20); /// draw right back leg of dog stroke(80, 0, 0); strokeWeight(5); line(dogL, dogY+30, dogX+90, dogY+47); //// Draw front dog leg on left. line(dogR, dogY-10, dogX+10, dogY+47); //// Draw front dog leg on right. } else if (dogDX < 0) { rect(dogG, dogY+40, 7, 20); /// draw left position back leg of dog rect(dogL, dogY+40, 7, 20); /// draw right position back leg of dog stroke(80, 0, 0); strokeWeight(5); line(dogR+10, dogY+30, dogR-1, dogY+47); //// Draw front dog leg on right. line(dogL+10, dogY-10, dogL-10, dogY+47); //// Draw front dog leg on left. } } void bird() { // Move bird. noStroke(); birdX= birdX + birdDX; birdY= birdY + birdDY; if (birdXright) birdDX= -birdDX; if (birdYbottom+50) birdDY= -birdDY; ////Draw bird, while allowing bird to go from top to bottom reversing direction. fill(0, 0, 255); ////bird look left if (birdDY < 0) { triangle( birdX-90, birdY, birdX-40, birdY-20, birdX-40, birdY+5 ); ////bird look right } else if (birdDY > 0) triangle( birdX+10, birdY, birdX-40, birdY-20, birdX-40, birdY+5 ); } void mousePressed() { //// Event handler for mouse click. if ( mouseX>left && mouseXtop && mouseYleft && mouseXtop && mouseY