====== Brandon Chen's crazyDog.js ====== by [[brandon-chen|Ben]] ===== about my crazyDog.js ===== This is my crazyDog.js. I've been working on it all semester. The hardest thing was to learn how to animate the dogs. I'm proud of it because I have never coded anything before so I feel like I accomplished a lot from doing this. The code for my artwork is below. The animation code is released under the [[https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html|GNU Lesser General Public License v2.1]] ===== the code for my crazyDog.js ===== let red=0; let green=0; let blue=0; let sun=144 let dogeColor=0 var teethDepth; var redTeethColorChange = 0 let x = 10 let speed = 0.1 function setup() { createCanvas(1800, 780); dogeColor = random(255) cloudColor = random(255) } class Dog { constructor (x ,y) { this.positionx = x this.positiony = y } draw () { fill(dogeColor) //front rect(this.positionx+65,725, 20, 55, 20); rect(this.positionx+70,725, 20, 55, 20); //back rect(this.positionx+165,725, 20, 55, 20); rect(this.positionx+160,725, 20, 55, 20); rect(this.positionx+65, this.positiony+460, 120, 60); //ears rect(this.positionx+55, 640, 30, 30, 10); rect(this.positionx+25,640,30,30,10) //Head circle(this.positionx+55, this.positiony+450, 60) {let numberarray = [0, 15, 10, 5] let r = random(numberarray) //Eyes for(let i = 0; i<1; i++) { let r = random(2, 5); if (mouseIsPressed){ fill(255, 0, 191) circle(this.positionx+40+r,660+r,10+r) circle(this.positionx+70+r,660+r,10+r)} else { fill(0,0,0) circle(this.positionx+40,660,10) circle(this.positionx+70,660,10)} } if (mouseIsPressed) { dogeColor = color(random (255), random(255), random(255)); } //mouth { fill('white') arc(this.positionx+55, 670, 30, 30, 0, PI, PIE,10) } //teeths if (mouseIsPressed) { redTeethColorChange += 2; } else { redTeethColorChange -= 2; } redTeethColorChange = constrain(redTeethColorChange, 0, 55); if (mouseIsPressed){ fill('red') triangle(this.positionx+60,685,this.positionx+55,671,this.positionx+65,671); triangle(this.positionx+50,685,this.positionx+45,671,this.positionx+55,671); } } } } class backgroundPattern { constructor (x,y) { this.xposition = x this.yposition = y } draw () { //sun //outer x = x + speed; if(x > width - 10 || x < 10){ speed = -speed; } noStroke(); fill(255, 165, 0, 50); circle(120+x,100, 200); //inner noStroke(); fill(255, 100, 0, 100); circle(120+x, 100, 150); //clouds fill(cloudColor) circle(this.xposition +50+x,250,60) circle(this.xposition +80+x,240,60) circle(this.xposition +100+x,230,60) circle(this.xposition +110+x,270,60) circle(this.xposition +120+x,270,60) circle(this.xposition +110+x,280,60) circle(this.xposition +100+x,250,60) circle(this.xposition +80+x,290,60) circle(this.xposition +30+x,450,60) circle(this.xposition +60+x,440,60) circle(this.xposition +80+x,430,60) circle(this.xposition +90+x,470,60) circle(this.xposition +100+x,470,60) circle(this.xposition +90+x,480,60) circle(this.xposition +80+x,450,60) circle(this.xposition +60+x,490,60) stroke(0,0,0) //hat if(mouseIsPressed){ fill('black') rect (this.xposition + 35, 575,40,50,10) ellipse (this.xposition + 55, 635, 70, 40)} //Click Me textSize(12); fill('pink'); text('Click on a Dog or Cloud', 220, 550); text('FLASH WARNING!!!', 100,550) if (mouseIsPressed) { cloudColor = color(random (255), random(255), random(255)); } }} function draw () { background(red+=5, green++, blue); for(let i = 0; i<100 ; i++) { let dog1 = new Dog (i*150, 213+(i*0)) dogarr = [ dog1 ] for (let i = 0; i < dogarr.length; i++) { dogarr[i].draw() } } for(let i =0;i<100;i++) { let background1 = new backgroundPattern (i*150,213+(i*0)) backgroundPatternarr = [ background1 ] for(let i = 0; i< backgroundPatternarr.length; i++) {backgroundPatternarr[i].draw()} } }