////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 ( valX
right-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