Anna Yang's crazyDog.js
by Anna
about my crazyDog.js
My dog has a pair of big round eyes and a strong body. He hopes to be adopted. Some people say he looks like a mouse but he is actually a Chihuahua.
The animation code is released under the GNU Lesser General Public License v2.1
the code for my crazyDog.js
// Where is the circle let x, y; function setup() { createCanvas(1800, 780); // Starts in the middle x = width / 2; y = height; } class Dog { constructor (size,dColor,x,y) { this.dogSize = size; this.dogColor = dColor; this.positionx=x-150; this.positiony=y-0; } draw () { fill(random(0,225),random(0,225),random(0,225)); rect(240+this.positionx, 300+this.positiony, 25, 50); // leg fill(random(0,225),random(0,225),random(0,225)); ellipse(300+this.positionx, 250+this.positiony, 35, 10); // tail fill(random(0,225),random(0,225),random(0,225)); rect(155+this.positionx, 300+this.positiony, 25, 50); // leg fill(random(0,225),random(0,225),random(0,225)); rect(144+this.positionx, 190+this.positiony, 150, 125); // body fill(random(0,225),random(0,225),random(0,225)); rect(165+this.positionx, 300+this.positiony, 25, 50); // leg fill(random(0,225),random(0,225),random(0,225)); rect(250+this.positionx, 300+this.positiony, 25, 50); // leg ellipseMode(RADIUS); fill(random(0,225),random(0,225),random(0,225)); ellipse(100+this.positionx, 100+this.positiony, 20, 20); ellipseMode(CENTER); fill(random(0,225),random(0,225),random(0,225)); ellipse(100+this.positionx, 100+this.positiony, 20, 20); ellipseMode(RADIUS); fill(random(0,225),random(0,225),random(0,225)); ellipse(200+this.positionx, 100+this.positiony, 20, 20); ellipseMode(CENTER); fill(random(0,225),random(0,225),random(0,225)); ellipse(200+this.positionx, 100+this.positiony, 20, 20); // ears fill(random(0,225),random(0,225),random(0,225)); square(100+this.positionx, 100+this.positiony, 100, 20); // face ellipseMode(RADIUS); fill(random(0,225),random(0,225),random(0,225)); ellipse(175+this.positionx, 135+this.positiony, 15, 15); ellipseMode(CENTER); fill(random(0,225),random(0,225),random(0,225)); ellipse(175+this.positionx, 135+this.positiony, 15, 15); ellipseMode(RADIUS); fill(random(0,225),random(0,225),random(0,225)); ellipse(125+this.positionx, 135+this.positiony, 15, 15); ellipseMode(CENTER); fill(random(0,225),random(0,225),random(0,225)); ellipse(125+this.positionx, 135+this.positiony, 15, 15); // eyes fill(random(0,225),random(0,225),random(0,225)); circle(152.5+this.positionx, 175+this.positiony, 25); // month }} class BackgroundPattern { constructor (size, Color,x,y) { this.backgroundSize = size; this.backgroundColor = Color; this.positiony=y-0; this.positionx=x-150; } draw () { ellipseMode(RADIUS); fill(random(0,225),random(0,225),random(0,225)); ellipse(200+this.positionx, 250+this.positiony, 200, 200); ellipseMode(CENTER); fill(random(0,225),random(0,225),random(0,225)); ellipse(200+this.positionx, 250+this.positiony, 370, 370); textSize(32); fill(random(0,225),random(0,225),random(0,225)); text('Adopt me', this.positionx+200, this.positiony+190); fill(random(0,225),random(0,225),random(0,225)); text('Adopt me', this.positionx+200, this.positiony+220); fill(random(0,225),random(0,225),random(0,225)); text('Adopt me', this.positionx+200, this.positiony+250); }} function dogArray (n, x, y) { let outputArray = []; for (let i = 0; i < n ; i++) { outputArray.push(new Dog (100,"blue",x + (i*350) - 50,y+100)) } return outputArray } function backgroundPatternArray (number,x,y) { let outputArray = []; for (let i = 0; i < number ; i++) { outputArray.push(new BackgroundPattern (500,"blue",x + (i * 350),y)) } return outputArray } function Dogs2 (startingX, startingY, numberOfArrays, arrayLength) { for(let i = 0; i < numberOfArrays ; i++){ let myDogs = dogArray (arrayLength, startingX, startingY+(i*350)); for(let i = 0; i < myDogs.length ; i++){ myDogs[i].draw() }}} function Background2 (startingX, startingY, numberOfArrays, arrayLength) { for(let i = 0; i < numberOfArrays ; i++){ let myBackground = backgroundPatternArray (arrayLength, startingX, startingY+(i*350)); for(let i = 0; i < myBackground.length ; i++){ myBackground[i].draw() }}} function draw() { background(220); //let back2 = new BackgroundPattern (100,"beige",215,60); //back2.draw(); //let back1 = new BackgroundPattern (100, "beige",615, 505) //back1.draw(); //let dog2 = new Dog (100, "beige", "beige",190,125); //dog2.draw(); //let dog1 = new Dog (100, "beige", "beige",590, 525) //dog1.draw(); //let dog2 = new Dog (200,100, "red", "blue"); //dog2.draw(); Background2 (100, 0, 5, 5) Dogs2 (100, 0, 5, 5); // Draw a circle stroke(50); fill(100); ellipse(x, y, 24, 24); // Jiggling randomly on the horizontal axis x = x + random(-1, 1); // Moving up at a constant speed y = y - 1; // Reset to the bottom if (y < 0) { y = height; } }