//Author: Riley Jackson //Date: Sept. 28, 2018 //Discription: //All the user defined variables used in the code float carrotPositionX; float carrotPositionY; float bunnyPositionX = 200; float bunnyPositionY = 200; float bunnyUpdatePositionX; float bunnyUpdatePositionY; float snowPositionX; float snowPositionY; int carrotSpacingX = 40; //this sets up the window of the interactive toy and prints out a line to explain how the program functions void setup() { size(400, 400); println("Use the arrow keys to move the rabbit around the screen and press shift to restart"); } //this draws all the seperate parts of the program and updates the parts that move void draw() { background(10, 20, 50); //calls the updateSnow() function updateSnow(); fill(255); rect(0, 200, 400, 200); //calls the undateBunny() function updateBunny(); //calls the updateCarrot() function updateCarrot(); //calls the drawSnow function drawSnow(); //calls the drawBunny() function drawBunny(); } //this draws the carrot and put is at the correct height position on the screen void drawCarrot() { noStroke(); ellipseMode(CENTER); fill(55, 160, 28); triangle(carrotPositionX -5, (height/2)-10, carrotPositionX, (height/2)-15, carrotPositionX+5, (height/2)-5); triangle(carrotPositionX+10, (height/2)-15, carrotPositionX+15, (height/2)-10, carrotPositionX+5, (height/2)-5); fill(244, 173, 66); triangle(carrotPositionX, (height/2) - 5, carrotPositionX+10, (height/2)-5, carrotPositionX+5, (height/2)+15); fill(255); ellipse(carrotPositionX+5, (height/2)+10, 15, 15); } //this creates the loop that allows the carrots to appear across the screen with out having to redraw them each time void updateCarrot() { //sets the current x position of the carrot to 0 carrotPositionX = 0; //starts the loop and sets the perameter for the loop to contine. while (carrotPositionX <= width) { //calls the funtion drawCarrot(); to draw the carrot drawCarrot(); //this adds to the carrots x position each time to create a line with them evenly spaced out carrotPositionX = carrotPositionX + carrotSpacingX; } } //this funtion updates the snow by randomly putting it across the sky. void updateSnow() { //sets these two variables to random x and y corrdinates between the specified numbers snowPositionX = random(0, 400); snowPositionY = random(0, 200); } //this function draws a single piece of snow to be repeated in the updateSnow() function void drawSnow() { ellipse(snowPositionX, snowPositionY, 10, 10); } //draws the bunny once with variable that can be changes later for convienece void drawBunny() { noStroke(); ellipseMode(CENTER); fill(237, 216, 168); ellipse(bunnyPositionX, bunnyPositionY + 25, 50, 50); ellipse(bunnyPositionX, bunnyPositionY, 40, 40); arc(bunnyPositionX + -10, bunnyPositionY + -5, 10, 50, -PI, 0); arc(bunnyPositionX + 10, bunnyPositionY+ -5, 10, 50, -PI, 0); fill(0); ellipse(bunnyPositionX + -10, bunnyPositionY+ -5, 7, 7); ellipse(bunnyPositionX + 10, bunnyPositionY+ -5, 7, 7); fill(255); ellipse(bunnyPositionX + -12, bunnyPositionY+ -7, 2, 2); ellipse(bunnyPositionX + 8, bunnyPositionY+ -7, 2, 2); fill(0); triangle(bunnyPositionX + -5, bunnyPositionY, bunnyPositionX, bunnyPositionY+5, bunnyPositionX+5, bunnyPositionY); } //this updates the bunny's movement and constrains it to the screen. void updateBunny() { //constrains the x position of the bunny bunnyPositionX = constrain(bunnyPositionX, 0, 400); //constrains the y position of the bunny bunnyPositionY = constrain(bunnyPositionY, 200, 400); //calls the keyPressed() fuction keyPressed(); } //this funtion is used when one of the specifed keys are pressed and then will move the bunny around the screen void keyPressed() { if (key ==CODED) { //if the up key is pressed the bunny's y position will decrease if (keyCode == UP) { bunnyPositionY--; } //if the down key is pressed the bunny's y position will increase if (keyCode == DOWN) { bunnyPositionY++; } //if the left key is pressed the bunny's x position will decrease if (keyCode == LEFT) { bunnyPositionX--; } //if the right keys is pressed the bunny's x position will increase if (keyCode == RIGHT) { bunnyPositionX++; } //if the shift key is pressed the bunny will move directly to point 200,200 on the screen else if(keyCode == SHIFT){ bunnyPositionX = 200; bunnyPositionY= 200; } } }