Table of Contents

Howard Liao's crazyDog.js

by Howard Liao

about my crazyDog.js

This is my crazy dog.js, this is what I learned this semester, We try to make a lot of dogs and an animation background or a dog.

The animation code is released under the GNU Lesser General Public License v2.1.

the code for my crazyDog.js

function setup() {
  createCanvas(1920, 1080);
  //noLoop()
}
 
class Dog {
  // dogSize is the number of times bigger
  constructor (xposition, yposition, dogSize)
  { 
    this.xposition = xposition;
    this.yposition = yposition;
    this.dogSize = dogSize;
  }
  draw () {
  fill(2, 25, 2)
  square(this.xposition + (200 * this.dogSize), this.yposition + (80 * this.dogSize), this.dogSize * 50);
  square(this.xposition + 90, this.yposition + 80, this.dogSize * 50);
  square(this.xposition + 130, this.yposition + 130, this.dogSize * 140);
  fill(Math.random() * 255, Math.random() * 255, Math.random() * 255)
  square(this.xposition + 98, this.yposition + 121, this.dogSize * 35);
  square(this.xposition + 162, this.yposition + 122, this.dogSize * 35);
  fill(Math.random() * 255, Math.random() * 255, Math.random() * 255)
  square(this.xposition + 99, this.yposition + 126, this.dogSize * 24);
  square(this.xposition + 163, this.yposition + 126, this.dogSize * 24);
  fill(Math.random() * 255, Math.random() * 255, Math.random() * 255)
  square(this.xposition + 100, this.yposition + 126, this.dogSize * 17);
  square(this.xposition + 164, this.yposition + 126, this.dogSize * 17);
  fill(Math.random() * 255, Math.random() * 255, Math.random() * 255)
  square(this.xposition + 100, this.yposition + 126,this.dogSize * 10);
  fill(Math.random() * 255, Math.random() * 255, Math.random() * 255)
  square(this.xposition + 110, this.yposition + 196, this.dogSize * 200, 1, 50)
  fill(Math.random() * 255, Math.random() * 255, Math.random() * 255)
  square(this.xposition + 140, this.yposition + 326, this.dogSize * 48, 10);
  square(this.xposition + 200, this.yposition + 355, this.dogSize * 41, 10);
  fill(Math.random() * 255, Math.random() * 255, Math.random() * 255)
  fill(Math.random() * 255, Math.random() * 255, Math.random() * 255)
  noStroke();
  noFill();
 
  }
  }
 
 
  class BackgroundPattern {
  // dogSize is the number of times bigger
  constructor (xposition, yposition, patternSize, hColor, eColor)
  { 
    this.xposition = xposition;
    this.yposition = yposition;
    this.patternSize = patternSize;
    this.hairColor = hColor;
    this.eyeColor = eColor
  }
  draw () {
    fill(255,255,255);
    square(this.xposition + 24, this.yposition + 126,this.patternSize * 10);
    fill(245, 152, 181);
    square(this.xposition + 10, this.yposition + 134, this.patternSize * 10);
    fill(19, 121, 50);
    noStroke();
    smooth();
    ellipse(this.xposition + 30, this.yposition + 59, this.patternSize * 36, this.patternSize * 36);
    noSmooth();
    ellipse(this.xposition + 70, this.yposition + 50, this.patternSize * 36, this.patternSize * 36);
   }
   }
 
   function backgroundPatternArray (n, y) {
    let outputArray = [];
    for (let i = 0; i < n ; i++) {
        outputArray.push(new BackgroundPattern (0 + (i*120),0 + y, 1,"red", "blue"))
    }
    return outputArray
    }
 
    function dogArray (n, y) {
    let outputArray = [];
   for(let k = 0; k < n ; k++){
    for (let i = 0; i < n ; i++) {
      outputArray.push(new Dog (0 + (200*i),y+(k*400), 0.5 + (1 * Math.random())))
      }  
    }
    return outputArray
   }
 
 
  function draw() {
  background(255,255,255)
  //background(random(0,255),random(0,255),random(0,255)); 
  //let myDog2 = new Dog (0, 0, 0.5, "red","blue");
  //myDog2.draw();
  //let myPattern1 = new BackgroundPattern (0, 0, 1, "red","blue");
  //myPattern1.draw()
  //background(220);
 
  
  for(let i = 0; i < 15 ; i++){
    let myBackgroundPattern = backgroundPatternArray(15, 0 + (i * 100));
    for(let i = 0; i < myBackgroundPattern.length ; i++){
    myBackgroundPattern[i].draw()
  }
  }
  
  let howardsDogs = dogArray (10,0);
  //howardsDogs[0].draw()
  for(let i = 0; i< howardsDogs.length; i++){
    howardsDogs[i].draw();
    }
  
  //let myDog = new Dog (0, 0, 1);
  //myDog.draw();
}